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

Problema con bucle y condicional

Estas en el tema de Problema con bucle y condicional en el foro de Java en Foros del Web. Hola, tengo un problema con este sencilo codigo: Código: import java.util.Scanner; public class Calco { public static void main(String[] args) { Scanner leerEntrada = new ...
  #1 (permalink)  
Antiguo 17/08/2015, 18:02
 
Fecha de Ingreso: agosto-2015
Mensajes: 3
Antigüedad: 8 años, 8 meses
Puntos: 0
Problema con bucle y condicional

Hola, tengo un problema con este sencilo codigo:

Código:
import java.util.Scanner;


public class Calco {


    public static void main(String[] args) {
        
        Scanner leerEntrada = new Scanner(System.in);
        String operacion="";
        int seleccion=0;
        
        while(seleccion!=3)
        {
            System.out.println("Menú");
            System.out.println("1. Ingresar opreación");
            System.out.println("2. Mostrar bitácora");
            System.out.println("3. Salir");
            System.out.print("Elija una opción: ");
            seleccion=leerEntrada.nextInt();
            
            if(seleccion==1)
            {
                System.out.println("Ingrese la operación: ");
                operacion=leerEntrada.nextLine();
            }
            
        }
    }
    
}
El problema es que al verificar que el valor de "seleccion" es 1, el condicional if solamente me muestra el mensaje "Ingrese la operacion" pero no me deja ingresar el texto, tal como lo especifico en el codigo, si no que sale del condicional y cotinua en el bucle.

La salida que obtengo es:
Código:
1. Ingresar opreación
2. Mostrar bitácora
3. Salir
Elija una opción: 1
Ingrese la operación: 
Menú
1. Ingresar opreación
2. Mostrar bitácora
3. Salir
Elija una opción: BUILD STOPPED (total time: 19 minutes 2 seconds)
  #2 (permalink)  
Antiguo 18/08/2015, 01:04
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Problema con bucle y condicional

Cuando se introduce un valor por consola Scanner captura el valor más el enter, por lo que cuando dices que lea el Int, queda en el buffer el enter, cuando llega a leerEntrada.nextLine() no espera a que introduzcas un nuevo valor ya que usa el enter.

La solución pasa porque en vez de nextInt leas nextLine o que después del nextInt hagas un nextLine para eliminar del buffer el enter.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 18/08/2015, 16:57
 
Fecha de Ingreso: agosto-2015
Mensajes: 3
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Problema con bucle y condicional

Cita:
Iniciado por Xerelo Ver Mensaje
Cuando se introduce un valor por consola Scanner captura el valor más el enter, por lo que cuando dices que lea el Int, queda en el buffer el enter, cuando llega a leerEntrada.nextLine() no espera a que introduzcas un nuevo valor ya que usa el enter.

La solución pasa porque en vez de nextInt leas nextLine o que después del nextInt hagas un nextLine para eliminar del buffer el enter.
Funciona perfecto, gracias.
Saludos.

Etiquetas: condicional
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:19.