Maison > Java > javaDidacticiel > le corps du texte

Pourquoi est-ce que je reçois une exception NoSuchElementException lors de l'utilisation de nextInt() du scanner ?

DDD
Libérer: 2024-11-16 06:26:03
original
346 Les gens l'ont consulté

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

Accident nextInt() du scanner : comprendre l'exception NoSuchElementException

Lorsque vous essayez de récupérer un entier à l'aide de la méthode nextInt() du scanner, vous pouvez rencontrer un erreur redoutée : NoSuchElementException. Cela se produit lorsqu'il n'y a plus d'entiers disponibles pour la récupération à partir du flux d'entrée.

Pour identifier le coupable, nous examinons l'extrait de code :

Scanner s = new Scanner(System.in);
int choice = s.nextInt(); // Error occurs here
s.close();
Copier après la connexion

La méthode nextInt() suppose qu'un entier attend d'être lu, mais dans notre cas, il se peut qu'il n'y en ait pas. Pour éviter cette erreur, nous pouvons exploiter les méthodes hasNextXXXX() fournies par Scanner. Ces méthodes vérifient la disponibilité du type de données approprié, garantissant que l'entrée est prête à être récupérée.

Dans ce scénario spécifique, nous pouvons rectifier le problème en employant hasNextInt() :

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

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

s.close();
Copier après la connexion

La vérification hasNextInt() garantit qu'un entier existe avant de tenter de le récupérer avec nextInt(). Cela élimine la possibilité de NoSuchElementException.

Alors, rappelez-vous, lorsque vous utilisez la méthode nextInt() de Scanner, utilisez toujours hasNextInt() pour garantir qu'un entier attend d'être consommé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal