Maison >Java >javaDidacticiel >Pourquoi est-ce que je reçois une « NoSuchElementException » lorsque j'utilise la classe Scanner de Java ?
Dépannage « NoSuchElementException » dans Java.Util.Scanner
L'erreur « NoSuchElementException » en Java est généralement provoquée par une tentative de lecture à partir de une source d'entrée fermée ou vide à l'aide de la classe Scanner. Dans votre cas, cette exception se produit lorsque vous essayez de lire le deuxième entier de l'utilisateur (ligne 17 de votre code).
Pour déboguer ce problème, examinons la classe Scanner en détail :
Classe Scanner
La classe Scanner vous permet de lire des données texte à partir d'une source, telle que System.in (la console). Ses méthodes vous permettent d'extraire différents types de données, y compris des entiers (nextInt()), de la source.
Dans votre code, vous créez un objet Scanner appelé "input" pour lire les entrées de la console. Vous essayez ensuite de lire deux valeurs entières dans les variables numéro1 et numéro2.
Analyse des erreurs
L'erreur "NoSuchElementException" suggère que l'objet Scanner s'attend à trouver un entier sur la ligne d'entrée suivante mais je n'en trouve pas. Cela peut se produire pour plusieurs raisons :
Solution proposée
Pour résoudre ce problème, pensez à ajouter une vérification pour vérifier que le scanner a un autre entier à lire avant de tenter d'extraire it :
if (input.hasNextInt()) { number2 = input.nextInt(); } else { // Handle the case where no integer is found // (e.g., display an error message or set number2 to a default value) }
En incorporant cette vérification, vous pouvez déterminer s'il existe un autre entier disponible avant d'essayer de le lire. S'il n'y en a pas, vous pouvez prendre les mesures appropriées, comme afficher un message d'erreur ou définir le numéro 2 sur une valeur par défaut.
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!