왜 내 코드에서 오류가 발생합니까? 사용자가 잘못된 번호를 입력하면 코드에서 새로운 유효한 번호를 입력해야합니까? 좋아하는 것을 새로운 가치로 바꿀 수없는 것처럼 보입니다. 이 문제를 어떻게 해결할 수 있습니까?스캐너 java.util.InputMismatchException에서 Catch 문 결과를 시도하십시오.
package RobB;
import java.util.Scanner;
public class FavoriteNum {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] num = new int[10];
int favorite = 0;
System.out.print("Enter your favorite number: ");
try {
favorite = scan.nextInt();
}
catch (Exception e) {
System.out.println("Enter an integer!");
System.out.print("Enter your favorite number: ");
favorite = scan.nextInt();
}
for (int i = 0; i < 10; i++) {
System.out.print("Enter a random number (" + Math.abs(((i + 1) - 10)) + " to go): ");
num[i] = scan.nextInt();
}
}
}
콘솔 출력 : catch
절에 입력
Enter your favorite number: 11.1
Enter an integer!
Exception in thread "main" Enter your favorite number: java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at RobB.FavoriteNum.main(FavoriteNum.java:21)
_Scan_는 ??? – vinS
이것은 사양입니다. 추가 한 추가 검사를 받아야하고 유효한 입력을 얻을 때까지 루프를 추가해야합니다. – ronhash