我想让用户输入一个数字,如果他们输入错误的数字(不是1到99之间的int),那么catch(防止字符串崩溃)并循环,直到输入一个正确的数字。我的循环不知为何卡在了一个无尽的循环中。注意:我确实导入了Scanner,也导入了异常。
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String result;
int number;
boolean done = false;
while (true) {
try {
System.out.println("Please select a number from 1 to 99.");
number = input.nextInt();
input.nextLine();
if (number >= 1 || number <= 99) {
result = checkNumber(number);
System.out.println(result);
break;
}
} catch (InputMismatchException exception) {
}
}
}
input.nextInt()
不会消耗任何不是一个 int
. 它将抛出一个异常。你忽略这个异常,并尝试消耗一个新的 int
. 它仍然不是一个 int
. 同样的异常。无限循环。再加一个 input.nextLine()
在你的接球区。