Estoy haciendo un programita de consola que pide unos datos por teclado usando la clase java.util.Scanner. El programa necesita un entero, para calcular el cuadrado. Estoy capturando lo que se ha introducido por teclado mediante el metodo nextInt(), y quiero controlar la excepción cuando el usuario introduce algo que no es un entero, usando un bucle que me fuerce a realizar otra lectura.
Este es mi codigo:
Código:
El programa funciona bien cuando introduzco un entero por teclado, pero cuando introduzco un string, entro en un bucle infinito, el programa no vuelve a esperar que introduzca algo por teclado, sino que se lanza infinitamente la excepcion InputMismatchException.Scanner sc = new Scanner(System.in); int numero = 0; boolean error = true; while(error){ try{ System.out.println("Introduce un numero: "); numero = sc.nextInt(); error = false; }catch(InputMismatchException ex){ System.out.println("Formato de numero equivocado"); } } System.out.println("El cuadrado del numero "+numero+" es: "+Math.pow(numero, 2));
¿Cual sería la solución para conseguir el comportamiento que estoy buscando?
Gracias de antemano y un saludo