Foros del Web » Programación para mayores de 30 ;) » Java »

Que esta mal ?

Estas en el tema de Que esta mal ? en el foro de Java en Foros del Web. es un programa que en esta parte, si escribis RANDOM te genera una flota de autos aleatoriamente , pero si ingresas un numero vos, te ...
  #1 (permalink)  
Antiguo 13/12/2012, 11:44
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 3
Que esta mal ?

es un programa que en esta parte, si escribis RANDOM te genera una flota de autos aleatoriamente , pero si ingresas un numero vos, te genera la cantidad que vos ingresas... la parte que genera aleatoriamente me salio perfecto pero la otra no... cuando pongo por ejemplo 10.. me salen como 49 autos :S...
este es el codigo...
Código:
        System.out.println("Escribi 'Random' para generar la flota 2 aleatoriamente, o ingresa el numero de autos de la flota2.");
        Scanner teclado= new Scanner(System.in);
        String decision=teclado.next();
        if("Random".equals(decision)||"random".equals(decision)){
            System.out.println("aleatorio del 0 al ?");
            int aleagir=teclado.nextInt();
            Pruebas[] flota2=new Pruebas[rnd.nextInt(aleagir)];
        if (flota2.length==0)
            System.out.println("Random = 0 :P");
            for(int i=0;i<flota2.length;i++){
                flota2[i]=new Pruebas();
                System.out.println("El auto numero "+(i+1)+" de la flota 2 es de color "+flota2[i].color+" y tiene un motor:"+flota2[i].motor);
            
        }

        }else{
        int num=decision.charAt(0);
        Pruebas[] flota2=new Pruebas[num];
        if (flota2.length==0)
            System.out.println("Random = 0 :P");
        for(int i=0;i<flota2.length;i++){
            flota2[i]=new Pruebas();
            System.out.println("El auto numero "+(i+1)+" de la flota 2 es de color "+flota2[i].color+" y tiene un motor:"+flota2[i].motor);
            
        }
        
        
        }}
}
  #2 (permalink)  
Antiguo 13/12/2012, 11:56
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Que esta mal ?

Hola:

El problema es esta línea

int num=decision.charAt(0);

Si pones "10", el charAt(0) es el "1", que asignado a un entero es el código ascii del "1", es decir, el 49.

La forma correcta sería

int num = Integer.parseInt(decision);

que convierte "10" en 10.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Última edición por chuidiang; 13/12/2012 a las 12:13
  #3 (permalink)  
Antiguo 13/12/2012, 12:08
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: Que esta mal ?

gracias, entonces parseInt convierte string a int.

Etiquetas: programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:50.