Heim >Java >javaLernprogramm >Wie verhindert man Endlosschleifen bei der Verarbeitung ungültiger Ganzzahleingaben mit dem Java-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!