Heim > Java > javaLernprogramm > Warum erhalte ich eine NoSuchElementException, wenn ich nextInt() des Scanners verwende?

Warum erhalte ich eine NoSuchElementException, wenn ich nextInt() des Scanners verwende?

DDD
Freigeben: 2024-11-16 06:26:03
Original
420 Leute haben es durchsucht

Why Am I Getting a NoSuchElementException When Using Scanner's nextInt()?

Scanners nextInt()-Missgeschick: Die NoSuchElementException verstehen

Beim Versuch, eine Ganzzahl mithilfe der nextInt()-Methode des Scanners abzurufen, kann es zu einem Fehler kommen Gefürchteter Fehler: NoSuchElementException. Dies tritt auf, wenn keine ganzen Zahlen mehr zum Abruf aus dem Eingabestream verfügbar sind.

Um den Übeltäter zu ermitteln, untersuchen wir das Code-Snippet:

Scanner s = new Scanner(System.in);
int choice = s.nextInt(); // Error occurs here
s.close();
Nach dem Login kopieren

Die nextInt()-Methode geht davon aus, dass ein Ganzzahl wartet darauf, gelesen zu werden, aber in unserem Fall ist möglicherweise keine vorhanden. Um diesen Fehler zu verhindern, können wir die von Scanner bereitgestellten hasNextXXXX()-Methoden nutzen. Diese Methoden überprüfen die Verfügbarkeit des entsprechenden Datentyps und stellen sicher, dass die Eingabe zum Abruf bereit ist.

In diesem speziellen Szenario können wir das Problem beheben, indem wir hasNextInt():

Scanner s = new Scanner(System.in);
int choice = 0;

if (s.hasNextInt()) {
    choice = s.nextInt();
}

s.close();
Nach dem Login kopieren
Die hasNextInt()-Prüfung stellt sicher, dass eine Ganzzahl vorhanden ist, bevor versucht wird, sie mit nextInt() abzurufen. Dadurch wird die Möglichkeit der NoSuchElementException ausgeschlossen.

Denken Sie also daran, beim Umgang mit der nextInt()-Methode des Scanners immer hasNextInt() zu verwenden, um sicherzustellen, dass eine Ganzzahl darauf wartet, verbraucht zu werden.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich eine NoSuchElementException, wenn ich nextInt() des Scanners verwende?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage