對雙值輸入中的InputMismatchException 錯誤進行故障排除
使用雙值時,使用Scanner.nextDouble() 時通常會遇到InputMismatchException讀取輸入。當使用者輸入無效的雙精度值(例如沒有小數點的字串或整數)時,會發生此異常。
考慮以下程式碼:
public double checkValueWithin(int min, int max) { double num; Scanner reader = new Scanner(System.in); num = reader.nextDouble(); // Throws InputMismatchException if input is invalid while (num < min || num > max) { System.out.print("Invalid. Re-enter number: "); num = reader.nextDouble(); } return num; }
此程式碼驗證使用者輸入指定範圍內的雙精確值。但是,如果使用者輸入像「1.2」這樣的值(使用點作為小數點分隔符號),則會拋出 InputMismatchException。
要解決此問題,請確保使用逗號 (,) 而不是輸入雙精度值時使用點 (.) 作為小數點分隔符號。例如,輸入“1,2”而不是“1.2”。或者,您可以使用不同的方法,例如 Scanner.next() 並手動將輸入解析為雙精度,處理可能發生的任何異常。
以上是為什麼輸入 Double 值時 Scanner.nextDouble() 會拋出 InputMismatchException?的詳細內容。更多資訊請關注PHP中文網其他相關文章!