【发布时间】:2013-12-03 09:48:09
【问题描述】:
所以我必须通过扫描仪进行输入。我试图让程序在用户输入非整数值时继续要求用户输入有效的输入。以下是我尝试实现这一目标的方法。
System.out.println("Enter an integer");
Scanner input = new Scanner(System.in);
int level=0;
try{
level=input.nextInt();
}catch(InputMismatchException e){
System.out.println(e+". Enter a valid entry!");
level=input.nextInt();
}
问题在于,如果用户输入了一个字符,程序不会让用户输入另一个整数。程序只是停止并打印出 catch 块中的 print 语句以及:
Exception in thread "main" 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 Main.main(Main.java:20) (which is level=input.nextInt(); in the catch block)
我在这里做错了什么?
【问题讨论】: