JAVA – int 변수의 입력 값이 문자일 경우 리턴(?)하기
먼저 설명에 앞서 아래의 예제 소스를 컴파일하고 문자를 입력해보자.
1 2 3 4 5 6 7 8 9 10 11 12 |
import java.util.Scanner; class InputMismatchExceptionExam{ public static void main(String args[]){ Scanner sc = new Scanner(System.in); System.out.print("정수 입력 : "); int num = sc.nextInt(); System.out.println("입력된 정수 : "+num); } } |
위의 예제 소스를 컴파일하고 정수를 입력해야하는 곳에 문자를 입력하게 되면 분명 아래와 같은 에러 메세지를 볼 수 있을 것이다.
1 2 3 4 5 6 |
Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:864) at java.util.Scanner.next(Scanner.java:1485) at java.util.Scanner.nextInt(Scanner.java:2117) at java.util.Scanner.nextInt(Scanner.java:2076) at InputMismatchExceptionExam.main(InputMismatchExceptionExam.java:8) |
이는 입력된 값이 일치하지 않다는 뜻으로 아래와 같은 방법으로 해결 할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import java.util.Scanner; class InputMismatchExceptionExam{ public static void main(String args[]){ Scanner sc = new Scanner(System.in); System.out.print("정수 입력 : "); while (!sc.hasNextInt()) { sc.next(); System.out.print("정수를 입력 : "); } int num = sc.nextInt(); System.out.println("입력된 정수 : "+num); } } |
RECENT COMMENTS