Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/09/2015, 17:36
Avatar de AlfaCenturio
AlfaCenturio
 
Fecha de Ingreso: abril-2005
Ubicación: México
Mensajes: 286
Antigüedad: 19 años, 10 meses
Puntos: 0
De acuerdo Respuesta: Ciclo do while se brinca

Cita:
Iniciado por freddy31DA Ver Mensaje
No estas validando todavía nada.
Bueno al inicio si yo oprimo enter al pedirme el nombre pasa... Cuando llego a si quiero verificar otro tambien se pasa.
Esto ocurre debido a un mal tratamiento del buffer. Al inicio al registrar el nombre automáticamente luego del enter se lanza un carácter ‘\n’ o ‘enter’ en el buffer, por lo tanto, cuando se quiere leer una cadena con el método ‘nextLine()’, esta función inicia la lectura del buffer ¡y lo primero que se encuentra es justamente el carácter de final de cadena! ( ‘\n’ ),

Al inicio esta solución te pedira el nombre luego tienes presionar enter pero luego del S/N ya no:
Código Java:
Ver original
  1. System.out.println("Escriba el nombre del empleado: ");
  2. nombre = sc.nextLine();
  3. sc.nextLine(); //Agregad esto

Por eso tienes que validar cada entrada...
Muchas gracias ya no se está brincando la primera al reiniciar el ciclo do while. ¿Es siempre necesario validar el .nextLine()?, te lo comento porque haciendo pruebas con .next() y .nextInt() no me ocurrió eso. Saludos.
__________________
"Todo lo que una persona pueda imaginar, otro podrá hacerlo realidad." Julio Verne
"No hay un solo tema científico, que no pueda ser explicado a nivel popular." Carl Sagan