Heim >Java >javaLernprogramm >Wie kann ich „NoSuchElementException' verhindern, wenn ich „java.util.Scanner' zum Lesen mehrerer Ganzzahlen verwende?

Wie kann ich „NoSuchElementException' verhindern, wenn ich „java.util.Scanner' zum Lesen mehrerer Ganzzahlen verwende?

Linda Hamilton
Linda HamiltonOriginal
2024-12-02 02:12:09641Durchsuche

How Can I Prevent `NoSuchElementException` When Using `java.util.Scanner` to Read Multiple Integers?

NoSuchElementException mit Java.Util.Scanner

Die NoSuchElementException wird geworfen, wenn die nextElement-Methode einer Aufzählung aufgerufen wird und keine Elemente mehr vorhanden sind in der Aufzählung. Im angegebenen Java-Code tritt diese Ausnahme auf, wenn die Scanner-Klasse versucht, die zweite Ganzzahl aus der Benutzereingabe zu lesen.

Das von Ihnen bereitgestellte Quellcode-Snippet soll den Benutzer zur Eingabe zweier Ganzzahlen auffordern und deren Summe berechnen . Es ist jedoch möglich, dass der Benutzer nur eine Ganzzahl eingegeben hat, sodass der Scanner keine gültige Eingabe für die nextInt()-Methode hat.

Um dieses Problem zu beheben, können Sie eine Prüfung integrieren, um festzustellen, ob der Scanner über eine andere verfügt Ganzzahl verfügbar, bevor versucht wird, sie zu lesen. Hier ist eine aktualisierte Version des Codes:

import java.util.Scanner;

public class Addition {
  public static void main(String[] args) {
    // creates a scanner to obtain input from a command window

    Scanner input = new Scanner(System.in);

    int number1; // first number to add
    int number2; // second number to add
    int sum; // sum of 1 & 2

    System.out.print("Enter First Integer: "); // prompt
    if (input.hasNextInt()) {
      number1 = input.nextInt();
    } else {
      // Handle the case where no number is entered
      number1 = 0;
    }

    System.out.print("Enter Second Integer: "); // prompt 2
    if (input.hasNextInt()) {
      number2 = input.nextInt();
    } else {
      // Handle the case where no number is entered
      number2 = 0;
    }

    sum = number1 + number2; // addition takes place, then stores the total of the two numbers in sum

    System.out.printf("Sum is %d\n", sum); // displays the sum on screen
  } // end method main
} // end class Addition

Dieser aktualisierte Code enthält zusätzliche Prüfungen, um zu überprüfen, ob der Benutzer eine Ganzzahl eingegeben hat, bevor er sie mit der Methode nextInt() liest. Dies hilft, die NoSuchElementException zu vermeiden und stellt sicher, dass sich das Programm wie erwartet verhält, auch wenn der Benutzer ungültige oder unvollständige Eingaben macht.

Das obige ist der detaillierte Inhalt vonWie kann ich „NoSuchElementException' verhindern, wenn ich „java.util.Scanner' zum Lesen mehrerer Ganzzahlen verwende?. 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