본문 바로가기

콤퓨타/Programming) 왕초보 자바

08. (Strings) User Input

 

정돈되지 않은 코드지만, 

일단 메인 메세지는 

'에러메시지가 나왔을때 당황하지말자'

 

아래는 Fahrenheit를 Celsius로 바꿔주는 프로그램이다.

그러니까 Fahrenheit 값을 넣으면 그에 해당하는 celsius로 계산해서 알려준다.

package application;

import java.util.Scanner;

public class App {
	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);

		System.out.print("Enter value in fahrenheit to convert > ");

		double fahrenheit = scanner.nextFloat();

		double celsius = (fahrenheit - 32) * 5.0 / 9.0;

		System.out.printf("%.1f degrees Fahrenheit is %.1f degrees celsius. \n", fahrenheit, celsius);

		//
		// Scanner scanner = new Scanner(System.in);

		System.out.println("Enter value in pound to covnert into kilogram > ");

		double pound = scanner.nextFloat();
		double kilogram = (pound * 0.45);

		// 타입문자가 부재 System.out.printf("%.1 lb is %.1 kilogram. \n", pound, kilogram);
		System.out.printf("%.1f lb is %.1f kilogram. \n", pound, kilogram);

		scanner.close();

	}

}

 

 

 

이 코드를 실행하면 하단 콘솔에 아래와 같이 뜬다. 

Enter value in fahrenheit to convert >

 

따라서 화씨 100도를 넣으면 섭씨 37.8로 바뀌는것을 확인할 수 있다. 

 

pound에서 kilogram으로도 바꿔주기 때문에 pound 값을 넣으면 그에 상응하는 kg 값을 보여준다.

 

 

하지만 애초에 숫자로 넣으라고 했는데 만약에 알파벳으로 답변을 남긴다면? 아래와 같이 에러 메시지가 뜬다. 

 

 

 

(1) 맨 첫단에는 에러 가 나온 이유

InputMismatchException 이라고 작성되어있다. (이건 method이기도 하다고...) 

이유가 상당히 직관적이다. 기대한 값을 넣은게 아니라 이거지. 숫자 넣으라고 했는데 글자를 넣었다 이말임. 

 

(2) 마지막단에는 , 몇줄에서 막혔는지를 보여준다. 

 

12번째 줄 코드를 확인하세요!

 

double이면 숫자로 넣어줘야 하는데 말이다. 

12번째 줄. double도 보이고 Float도 보임. 둘다 숫자 어쩌고 아님?

 

 

 

몇일 놀다 수업들으니까 죽을맛이네. 진짜 재미없고 지루하다. 

이걸 ㅠㅠ 이런식으로는 계속할 수 없을 것 같다. 아오 . 

그러나 저러나.. .해피코딩... ^^