我如何正确循环这个 try catch 语句?据我所知,
try block 中的 playerIntInput = reader.nextInt();
被执行,如果存在异常,它会捕获异常,这应该导致 loop = false
永远不会到达。然后它在 catch block 中输出消息,并且应该循环回到 try 并再次请求输入。相反,我只是从 catch block 获得无限循环的输出。
void CheckInput(int playerIntInput) {
boolean loop = true;
while(loop=true) {
try {
playerIntInput = reader.nextInt();
loop = false;
}
catch(InputMismatchException e) {
System.out.println("Invalid character was used, try again.");
}
}
}
最佳答案
您使用了赋值运算符=
,因此检查时loop
始终为true
,而不是==
运算符。您可以使用 while(loop == true)
,但 loop
已经是 boolean
了。最简单的解决方案是while(loop)
。
此外,如果 nextInt
中出现错误,它也不会消耗输入。在 catch
block 中调用 next()
以使用非数字输入并前进超过它。
关于java - 循环 try-catch 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29830643/