我有一个while循环运行,以确保用户输入正确的信息。但是,它不会通过循环再次询问用户。例如,如果我输入" k"当它正在寻找一个整数时,它不会通过任何程序,而是什么都不输出而且程序被卡住了。我找到了a question similar to this problem,但提供的解决方案仍然不起作用。在我的程序跳过while循环并继续之前,现在它被抓住永远无所事事。
while (errorLoop) {
try {
if (kb.hasNextInt()) {
Player.setBet(kb.nextInt());
}
}
catch (InputMismatchException e) {
System.out.println("Please enter a positive number.");
}
if (Player.getBet() > 0) {
errorLoop = false;
}
}
答案 0 :(得分:1)
你的代码没有忽略try-catch,它只是不能抛出InputMismatchException,因为在调用kb.nextInt()
之前你要确保下一个输入可以被解析为int(通过检查{{1}是真的)。
您可以删除try-catch:
kb.hasNextInt()