0
我有一个while循环运行,以确保用户输入正确的信息。但是,它不会通过循环再次询问用户。例如,如果我在查找整数时输入“k”,它将不会经过任何程序,而不会输出任何内容并且程序被卡住。我发现a question similar to this problem,但提供的解决方案仍然无法正常工作。虽然在我的程序跳过while循环并继续之前,现在它在永恒中一无所获。while循环忽略try-catch
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;
}
}
心不是第二别的情况下,多余的? +1对于很好的解释! – user 2014-10-19 18:47:41
@user稍微改变了逻辑。两个elses都是必需的。第一个处理负整数。第二个处理非int输入。在这两种情况下,您都希望消耗当前行的末尾,以便下一次迭代可以尝试在下一行中找到一个int。 – Eran 2014-10-19 18:52:28
现在我完全同意;) – user 2014-10-19 19:00:37