En la declaración try catch escrita en el bucle for de Java, después de pasar una vez por el contenido de la captura, los bucles posteriores pasarán por la captura.
Efecto
Si se llama a input(3)
El resultado es el siguiente:
1>5
2> 2.1
¡Solo se pueden ingresar números enteros! Escáner;
clase pública hola
{
public static void main(String[] args)
{
// TODO genera automáticamente códigos auxiliares de métodos
input(3);
}
public static int[] input(int length)
{
Scanner scanner = new Scanner(System.In);
1. Tu bucle infinito
Cada vez que catch encuentra un error, de hecho no lo hay. problema, puedes ver en la captura de pantalla que tu i no se mueve.
Pero todavía aparece "los datos no son un número entero legal" (los datos no son un número entero legal). Esto se debe a que el último error de entrada todavía está en la tubería de entrada y no se ha eliminado. Por lo tanto, se trata de un error de bucle continuo sin fin. Debería ser que tu i no se mueva.
2. Solución
A continuación, definimos una variable de tipo Sting para leer el número ingresado incorrectamente. Teniendo en cuenta que la entrada puede verse como una cadena, utilizamos el tipo String.
¡Buenas noches!