In einem Programm, das ganzzahlige Eingaben vom Benutzer liest, unter Verwendung eines Try/ Catch-Block zur Behandlung ungültiger Einträge enthält, tritt eine Endlosschleife auf, wenn eine InputMismatchException ausgelöst wird (z. B. wenn der Benutzer eine eingibt). nicht ganzzahliges Zeichen).
Die Endlosschleife wird durch zwei Probleme verursacht:
Um die Endlosschleife zu beheben und die korrekte Behandlung von InputMismatchException sicherzustellen, sind mehrere Schritte erforderlich kann genommen werden:
Hier ist der geänderte Code mit den vorgeschlagenen Verbesserungen:
import java.util.InputMismatchException; import java.util.Scanner; public class Except { public static void main(String[] args) { Scanner input = new Scanner(System.in); boolean bError = true; int n1 = 0, n2 = 0, nQuotient = 0; do { try { System.out.println("Enter first num: "); n1 = input.nextInt(); System.out.println("Enter second num: "); n2 = input.nextInt(); nQuotient = n1/n2; bError = false; } catch (InputMismatchException e) { System.out.println("Error!"); input.next(); // Consume the erroneous input } } while (bError); System.out.printf("%d/%d = %d",n1,n2, nQuotient); } }
Das obige ist der detaillierte Inhalt vonWie vermeide ich Endlosschleifen bei der Behandlung von InputMismatchException in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!