문제가 발생한 코드
Scanner sc = new Scanner(System.in);
int n = 0;
while (true) {
try {
System.out.println("정수를 >>");
n = sc.nextInt();
if (n < 0 || n > 10) {
System.out.println("1~10사이로 입력해주세요!");
} else {
System.out.println(n + "을 입력했습니다.");
break;
}
} catch (InputMismatchException e) {
System.out.println("정수를 입력해주세요!");
}
}
콘솔 출력
원인
- 처음에 입력한 문자열 값을 저장한 버퍼메모리를 비우지 않았기 때문이다.
해결
- 버퍼를 비워야한다.
해결 코드
} catch (InputMismatchException e) {
System.out.println("정수를 입력해주세요!");
sc.nextLine();
}
'에러 > JAVA' 카테고리의 다른 글
[에러] <JAVA> char cannot be dereferenced (0) | 2023.12.14 |
---|---|
[에러] <JAVA> JAVA에서의 문자열 비교 (0) | 2023.11.30 |
[에러] <JAVA> Cannot invoke toString() on the primitive type int (0) | 2023.11.28 |