Heim >Java >javaLernprogramm >Wie verhindert man Endlosschleifen bei der Verarbeitung ungültiger Ganzzahleingaben mit dem Java-Scanner?

Wie verhindert man Endlosschleifen bei der Verarbeitung ungültiger Ganzzahleingaben mit dem Java-Scanner?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-11 17:08:18285Durchsuche

How to Prevent Infinite Loops When Handling Invalid Integer Input with Java's Scanner?

Try/Catch mit InputMismatchException-Schleifenproblem

Beim Versuch, Benutzereingaben mit einem Try/Catch-Block und einer InputMismatchException zu verarbeiten, kann es zu Problemen kommen eine Endlosschleife, wenn die Eingabe keine Ganzzahl ist. Um dieses Problem zu beheben, stellen Sie sicher, dass Sie next() aufrufen, um den Scanner über die ungültige Eingabe hinaus weiterzubewegen.

catch (Exception e) {
    System.out.println("Error!");
    input.next(); // Advance past invalid input
}

Zusätzlich ist es ratsam, hasNextInt() zu verwenden, um vor dem Lesen auf gültige Ganzzahleingaben zu prüfen.

while (bError) {
    if (scanner.hasNextInt())
        n1 = scanner.nextInt();
    else {
        scanner.next(); // Advance past invalid input
        continue;
    }
    // Repeat for n2
}

Dieser Ansatz stellt sicher, dass der Scanner nicht ganzzahlige Eingaben überspringt und nur mit gültigen Werten fortfährt, sodass keine Ausnahmebehandlung erforderlich ist.

Das obige ist der detaillierte Inhalt vonWie verhindert man Endlosschleifen bei der Verarbeitung ungültiger Ganzzahleingaben mit dem Java-Scanner?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn