estoy usando el siguiente código:.Java: Bucle infinito mediante escáner 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.");
}
}
Sin embargo, si entro en una entrada no válida 'w' que me lo dirá "Ha introducido Intentar de nuevo " y luego entrará en un bucle infinito que muestra el texto "Especifique un número entero entre 0 y 5: ha ingresado una entrada no válida. Inténtelo de nuevo".
¿Por qué sucede esto? no es el programa supone que esperar a que el usuario introduzca y pulse ENTER cada vez que llega a la instrucción:
if (in.hasNextInt())
¡Ya que no le has enseñado a nadie lo que es 'in', o cómo lo has construido, no hay forma de saber cómo debería comportarse! –