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
Freigeben: 2024-12-11 17:08:18
Original
282 Leute haben es durchsucht

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
}
Nach dem Login kopieren

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
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage