首頁  >  文章  >  Java  >  是什麼導致 Java 中的 InputMismatchException 以及如何修復它?

是什麼導致 Java 中的 InputMismatchException 以及如何修復它?

Susan Sarandon
Susan Sarandon原創
2024-11-07 21:29:02916瀏覽

What Causes an InputMismatchException in Java and How to Fix It?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn