我寫了這個簡單的代碼來獲取一個double,直到給出一個請求,但是當你給一個字符串時,它會變成一個無限循環,我不知道爲什麼。爲什麼會這樣表現?這段代碼爲什麼會變成無限循環?
Scanner scanner = new Scanner(System.in);
double x = 0.0d;
while (true) {
try {
System.out.println("Gimme a double:");
x = scanner.nextDouble();
break;
} catch (InputMismatchException e) {}
}
System.out.println(x);
你永遠不應該像你一樣吞下異常重新做。至少在那裏放置一個打印語句,這樣你會看到循環連續執行異常並跳過你的break語句。 – 2013-05-01 00:06:47
我發現通過在catch塊中放置打印語句,但我沒有看到將它帶入示例代碼的一點。 – Seralize 2013-05-01 00:08:37