Duda pequeña de Java

Zeroner

El caso es que tengo un problema que realmente es UNA TONTERIA, pero me he puesto a ponerle excpeciones y me encuentro con esto:

//Entrada de Datos
System.out.println("Escribe un numero: ");
numero = Integer.parseInt(entrada.readLine ());
//Comprueba que la cifra es correcta
if (numero > 100 || numero < 0) {
System.out.println("Numero no valido. La cifra debe estar entre 0 y 100.");
return; }

Si pongo una cifra menor que cero o mayor que cien, el programa manda el mensaje de numero no válida y termina. Me gustaría saber que tengo que hacer para que en lugar de que termine (es lo único que se me ha ocurrido) vuelva al punto en el que pide los datos. Alguna mano?
gracias __

B

do while?

Zeroner

¬¬ vale, no habia dado el do while xD, asi que ahora me mirare un manual. En la uni todavia vamos por el if xD

Edito: Vale, me autorespondo es:

do {
System.out.println("Escribe numero: ");
numero = Integer.parseInt(entrada.readLine ());
} while (numero > 100 || horas < 0);

ya ta, thx

Zeroner

Ahora me surge otra duda, es sobre el uso del try-catch. En el programa tengo definido lo siguiente:

try {
do {

//pido el numero con el do while...

} catch (IOException ex) {
        System.out.println("Número no Válido.");
    } catch (NumberFormatException ex) {
        System.out.println("Error de Lectura."); }

Me gustaría saber que tengo que hacer para que cuando una excepcion del try-catch salte, no finalice el programa y vuelva a donde estaba el error para volver a introducir los datos.

BrUn

Quizá me equivoque, soy un poco n00b con los try y los catch.

Prueba a poner la estructura del try/catch solo en la linia que lees el valor , osea

do{....
try{ readline(); }catch(){....}
....
} while()

Me explico??

Zeroner

Explicarte, si, haber si me sale... xD

erdanblo

El try catch tiene que ir dentro del bucle.

B

#1

Si no es ninguna funcion/metodo lo que tienes escrito en #1, y esta metido dentro del main a pelo.... es por culpa del return que finalice el programa.

#5

Como dice #7, ha de ir dentro del bucle, piensa que el programa se reanuda desde el catch.

Zeroner

Asunto resuelto. Gracias a todos! __

Usuarios habituales