Java 程式碼中的InputMismatchException:輸入故障排除
在Java 中使用Scanner 類別時,在輸入處理過程中可能會出現意外異常。一個常見錯誤是 InputMismatchException,當輸入的輸入與預期資料類型不符時,就會發生這種錯誤。
考慮以下程式碼片段:
public double checkValueWithin(int min, int max) { double num; Scanner reader = new Scanner(System.in); num = reader.nextDouble(); while (num < min || num > max) { System.out.print("Invalid. Re-enter number: "); num = reader.nextDouble(); } return num; }
和
public void askForMarks() { double marks[] = new double[student]; int index = 0; Scanner reader = new Scanner(System.in); while (index < student) { System.out.print("Please enter a mark (0..30): "); marks[index] = (double) checkValueWithin(0, 30); index++; } }
測試這段程式碼時,由於輸入的資料類型不正確,遇到了InputMismatchException。嘗試使用點 (.) 作為小數分隔符號輸入雙精度值時會出現此問題。
解決方案:
要解決此問題,請使用逗號 ( ,),不是點,用於分隔數字的小數部分。例如,不要輸入 1.2,而是輸入 1,2。逗號是 Java 中 double 資料型別預設的小數分隔符號。
透過進行這個簡單的修改,您可以確保程式碼正確接受 double 值並避免出現 InputMismatchException。
以上是是什麼導致 Java 中的 InputMismatchException 以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!