Buenas. Haciendo un ejercico usando el manejo de excepciones, más concretamente cuando se mete una letra en un Scanner .nextInt, he conseguido que si pones una letra entre al catch y te vuelva a pedir un número, el problema es cuando introduces más de 1 letra seguida (osea, introducir una letra, darle a enter, y cuando a entrado en el catch, introducir de nuevo otra letra...), ¿Como se debería hacer para que siguiera pidiendo números hasta que introduzcas 10 (por ejemplo) sin que cuente las letras y no de error si se introducen más de una seguidas?
Aquí está el código que tengo hecho:
package Actividades_UD9;
import java.util.Scanner;
public class Actividad2 {
public static void main
(String[] args
) {
double num, aux=0.0;
int cont=0;
Scanner S
= new Scanner
(System.
in);
for(int i = 0; i<10; i++){
try{
System.
out.
print("Introduce un número: "); num = S.nextDouble();
if(num>aux){
aux = num;
}
}catch(java.util.InputMismatchException e){
System.
out.
println("Has introducido un valor incorrecto."); System.
out.
print("Introduce un número: "); num = S.nextDouble();
if(num>aux){
aux = num;
}
cont++;
}
}
System.
out.
println("Se ha producido "+cont
+" veces la excepción"); System.
out.
println("El número más alto ha sido : "+aux
);
}
}
Nota: El código es de un programa que saca el número mayor de los introducidos, y cuenta las veces que se ha dado la excepción (o que se ha introducido una letra)... Si se introduce una letra y salta el catch, y se introduce un número, funciona bien y luego si se puede introducir una letra que se comportará como toca, el problema es cuando se introduce más de una letra seguida.
Gracias de antemano y un saludo ¡!