Je suis en utilisant le code suivant:.Java: Boucle infinie à l'aide du scanner in.hasNextInt()
while (invalidInput)
{
// ask the user to specify a number to update the times by
System.out.print("Specify an integer between 0 and 5: ");
if (in.hasNextInt())
{
// get the update value
updateValue = in.nextInt();
// check to see if it was within range
if (updateValue >= 0 && updateValue <= 5)
{
invalidInput = false;
}
else
{
System.out.println("You have not entered a number between 0 and 5. Try again.");
}
} else
{
System.out.println("You have entered an invalid input. Try again.");
}
}
Cependant, si j'entre un 'w' il me dira: « Vous avez entré une entrée invalide Try Again " puis il va dans une boucle infinie montrant le texte "Spécifier un entier entre 0 et 5: Vous avez entré une entrée invalide.
Pourquoi cela se produit-il? N'est pas le programme censé attendre l'utilisateur d'entrer et appuyez sur Entrée à chaque fois qu'il atteint l'instruction:
if (in.hasNextInt())
Puisque vous n'avez montré à personne ce qu'est 'in', ou comment vous l'avez construit, il n'y a pas de moyen de savoir comment il devrait se comporter! –