java为什么我有一个无休止的dowhile循环?
我有一个不工作的do-while
循环。当我输入一个字符串而不是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);
# 1 楼答案
您需要在} 调用将把输入留在缓冲区中
catch
块中执行sc.nextLine()
以清除错误的输入。如果输入与int模式不匹配,^{