NoSuchElementException-Frustrationen mit Java.Util.Scanner
Das Auftreten eines „NoSuchElementException“-Fehlers kann verwirrend sein, insbesondere für Java-Neulinge wie Sie. Dieser Fehler tritt auf, wenn die Scanner-Klasse das nächste Token nicht aus dem Eingabestream abrufen kann. Lassen Sie uns in Ihren spezifischen Code eintauchen, um die Grundursache aufzudecken:
import java.util.Scanner; public class Addition { public static void main(String[] args) { Scanner input = new Scanner(System.in); int number1; // first number to add int number2; // second number to add int sum; // sum of 1 & 2 // Problem: Reading input values without checking for input availability System.out.print("Enter First Integer: "); number1 = input.nextInt(); // Exception occurs here when no input is provided System.out.print("Enter Second Integer: "); number2 = input.nextInt(); // Exception occurs here if input is not available for this prompt sum = number1 + number2; // Addition occurs, assuming input values are available System.out.printf("Sum is %d\n", sum); // Displays the sum, if input is available } }
Das Problem liegt darin, dass der Code versucht, Eingaben zu lesen, ohne zuvor zu überprüfen, ob Eingaben verfügbar sind. Die Methode input.nextInt() löst eine „NoSuchElementException“ aus, wenn der Benutzer keine Eingabe macht oder etwas anderes als eine Ganzzahl eingibt.
Lösung:
Zu beseitigen Um dieses Problem zu beheben, müssen wir die Verfügbarkeit der Eingaben prüfen, bevor wir versuchen, sie abzurufen it:
if (input.hasNextInt()) { number1 = input.nextInt(); } else { // Handle the case where no input is provided }
Erklärung:
Die Methode hasNextInt() prüft, ob das nächste Token im Eingabestream eine Ganzzahl ist. Wenn es „true“ zurückgibt, kann die Methode input.nextInt() verwendet werden, um die Ganzzahl abzurufen. Andernfalls kann der Code die Situation problemlos bewältigen, indem er beispielsweise Nummer1 auf 0 setzt oder eine Fehlermeldung anzeigt.
Durch die Implementierung dieser Prüfung löst Ihr Code keine „NoSuchElementException“ mehr aus und verhält sich wie erwartet Benutzer können ganze Zahlen eingeben und deren Summe berechnen.
Das obige ist der detaillierte Inhalt vonWarum löst mein Java-Scanner eine NoSuchElementException aus und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!