我有一个不工作的 do-while
循环。当我输入 String 而不是 int 时,它应该说“bla”并再次要求插入数字,但它却一遍又一遍地发送消息文本。这段代码有什么问题?
boolean i = true;
do {
i = false;
try {
System.out.println("insert number");
int k = sc.nextInt();
}
catch(InputMismatchException e) {
System.out.println("test");
i = true;
}
} while ( i== true);
最佳答案
您需要在 catch
block 中执行 sc.nextLine()
以清除错误输入。 nextInt()
如果输入与 int 模式不匹配,调用会将输入留在缓冲区中。
关于java - 为什么我有一个永无止境的 do-while 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17407044/