Foro de elhacker.net

Programación => Java => Mensaje iniciado por: leogtz en 13 Febrero 2010, 00:58 am



Título: try catch, bucle
Publicado por: leogtz en 13 Febrero 2010, 00:58 am
Hola a todos.

Mi pregunta es cómo hacer un bucle mientras se ingresen datos de otro tipo, ejemplo:

Código
  1. import java.io.*;
  2. public class pedo
  3. {
  4.        public static void main(String[] args)
  5.        {  
  6.                InputStreamReader isr = new InputStreamReader(System.in);
  7.                BufferedReader br = new BufferedReader(isr);
  8.                int n_elementos;
  9.                while(?)
  10.                {
  11.                        try
  12.                        {
  13.                                n_elementos = Integer.parseInt(br.readLine());
  14.                        } catch(Exception e)
  15.                        {
  16.                                e.printStackTrace();
  17.                        }
  18.                }
  19.        }
  20. }

Repetir el bucle mientras se teclee algo ajeno a un entero, manejar las excepciones.


Título: Re: try catch, bucle
Publicado por: egyware en 13 Febrero 2010, 01:13 am
usando una variable de control, si no me equivoco ese parser tira la expcepcion de formato de numero erroneo entonces cuando se capture la excepcion haces un boleano falso
Código
  1. boolean seguir=true;
  2. while(seguir){
  3. //..
  4. try{
  5. //..
  6. }catch(Exception e){
  7. seguir = false;
  8. }
  9. }
  10.  
Algo asi.


Título: Re: try catch, bucle
Publicado por: leogtz en 13 Febrero 2010, 01:35 am
Creo que no me expliqué bien, va de nuevo:

Lo que quiero es pedir un número, y si hay un error, repetir el bucle.


Título: Re: try catch, bucle
Publicado por: egyware en 13 Febrero 2010, 02:03 am
entonces me explique mal, entonces usaremos do while

Código
  1. boolean seguir = false;
  2. do{
  3. //...
  4. try{
  5. //...
  6. }catch(Exception e){
  7.   seguir = true;
  8. }
  9. }while(seguir);
  10.  
Explicación el DO-WHILE Hace-Repetir
EL do while realiza primero la accion dentro del bloque y si la condicion es verdadera(en este caso "seguir") se repite el bloque.
Saludos


Título: Re: try catch, bucle
Publicado por: leogtz en 13 Febrero 2010, 02:05 am
Gracias, luego lo pruebo y te comento.


Título: Re: try catch, bucle
Publicado por: 43H4FH44H45H4CH49H56H45H en 13 Febrero 2010, 06:45 am
Algo asi podria ser:

Código
  1. import java.io.*;
  2. public class Main {
  3.  
  4.    public static void main(String[] args) {
  5.         //System.out.println(Integer.MAX_VALUE);
  6.        InputStreamReader isr = new InputStreamReader(System.in);
  7.        BufferedReader br = new BufferedReader(isr);
  8.        try
  9.                {
  10.                    String linea = "";
  11.                    int n_elementos;
  12.                    do
  13.                    {
  14.                        linea = br.readLine();
  15.                        n_elementos = Integer.parseInt(linea);
  16.                         System.out.println("Numero: " + n_elementos + "\n");
  17.                    }while(IsNum(linea));
  18.  
  19.                }
  20.                catch(Exception e)
  21.                {
  22.                    System.out.println("error: " + e.getMessage());
  23.                    System.out.println("No es numero o esta fuera del limite");
  24.                }
  25.    }
  26.    private static boolean IsNum(String cadena)
  27.    {
  28.        for(int i=0;i<cadena.length();i++)
  29.            {
  30.               int ascii =(int)cadena.charAt(i);
  31.               if(ascii <48 ||ascii > 57 ) return false;
  32.            }
  33.        return true;
  34.    }
  35. }