Fehlerbehebung bei InputMismatchException-Fehlern bei der Eingabe von Doppelwerten
Beim Arbeiten mit Doppelwerten kommt es häufig vor, dass bei der Verwendung von Scanner.nextDouble() eine InputMismatchException auftritt. um Eingaben zu lesen. Diese Ausnahme tritt auf, wenn der Benutzer einen ungültigen Doppelwert eingibt, z. B. eine Zeichenfolge oder eine Ganzzahl ohne Dezimalpunkt.
Beachten Sie den folgenden Code:
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; }
Dieser Code validiert Benutzereingaben für ein doppelter Wert innerhalb eines angegebenen Bereichs. Wenn der Benutzer jedoch einen Wert wie „1,2“ eingibt (unter Verwendung eines Punkts als Dezimaltrennzeichen), wird eine InputMismatchException ausgelöst.
Um dieses Problem zu beheben, stellen Sie sicher, dass Sie ein Komma (,) anstelle von verwenden Bei der Eingabe von Doppelwerten wird als Dezimaltrennzeichen ein Punkt (.) verwendet. Geben Sie beispielsweise anstelle von „1,2“ „1,2“ ein. Alternativ können Sie eine andere Methode wie Scanner.next() verwenden und die Eingabe manuell als Double analysieren, um eventuell auftretende Ausnahmen zu behandeln.
Das obige ist der detaillierte Inhalt vonWarum löst Scanner.nextDouble() bei der Eingabe eines Double-Werts eine InputMismatchException aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!