我有一個非工作的do-while
循環。當我輸入字符串而不是int時,它應該說「bla」並再次要求插入一個數字,但是它會一遍又一遍地發送消息文本。這段代碼有什麼問題?爲什麼我有一個永無止境的do-while循環?
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);
請參閱http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html:'當掃描器拋出InputMismatchException時,掃描器不會傳遞導致異常的令牌,以便通過其他方法檢索或跳過它。所以,當你得到一個'InputMismatchException'時,你需要跳過這個標記。 –