Java: Endlosschleife mit Scanner in.hasNextInt ()
Ich benutze den folgenden Code:
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.");
}
}
Wenn ich jedoch ein 'w' eingebe, wird mir mitgeteilt, dass Sie eine ungültige Eingabe eingegeben haben. Versuchen Sie es erneut. und dann geht es in eine Endlosschleife mit dem Text "Geben Sie eine Ganzzahl zwischen 0 und 5 an: Sie haben eine ungültige Eingabe eingegeben. Versuchen Sie es erneut."
Warum passiert dies? Soll das Programm nicht jedes Mal warten, bis der Benutzer etwas eingibt und die Eingabetaste drückt, wenn es die folgende Anweisung erreicht:
if (in.hasNextInt())