Crea una clase y un método que pida los números y si se ingresa una letra que se vuelva a llamar él mismo. Esto se llama recursividad.
HighestNumberFinder:
import java.util.Scanner;
import java.util.InputMismatchException;
public class HighestNumberFinder {
private static byte exceptionCounter = 0;
public Double askForNumber
() { final Scanner READER
= new Scanner
(System.
in); try {
number = READER.nextDouble();
} catch(InputMismatchException ex) {
System.
out.
println("Ha introducido una letra. Ingrese un número"); exceptionCounter++;
number = askForNumber();
}
return number;
}
public byte getExceptionCounter() { return exceptionCounter; }
}
Main:
public class Main {
public static void main
(String[] args
) { double highestNumber = 0d;
final HighestNumberFinder highestNumberFinder = new HighestNumberFinder();
do {
System.
out.
println("Introduce un número: "); number = highestNumberFinder.askForNumber();
highestNumber = number > highestNumber ? number : highestNumber;
} while(number != -1);
System.
out.
println("Usted ha introducido "+highestNumberFinder.
getExceptionCounter()+" veces letras"); System.
out.
println("El número más alto fue: "+highestNumber
); }
}
Resultado de ejecución:
Introduce un número:
45
Introduce un número:
78
Introduce un número:
c
Ha introducido una letra. Ingrese un número
v
Ha introducido una letra. Ingrese un número
48
Introduce un número:
-56
Introduce un número:
-1
Usted ha introducido 2 veces letras
El número más alto fue: 78.0
RECOMENDACIONES
1) Usar nombres apropiados. Por ejemplo:
num puede llamarse number/numero.
cont puede llamarse counter/contador.
aux, éste es el peor. Puede llamarse highestNumber/numeroMayor.
s, puede llamarse reader/lector/entrada.
2) Empezar a usar programación orientada a objetos como lo hice yo. Lee algún tutorial al respecto.