problema con system.out

Iniciado por shadows789, 20 Abril 2014, 04:05 AM

0 Miembros y 1 Visitante están viendo este tema.

shadows789

hola chicos estoy aprendiendo java para extender mis conocimientos en programacion :P . Lo que sucede es que estoy practicando con un libro que consegui y en un entrada.nextLine(); no lo lee. este es el codigo:

import java.util.Scanner;
public class pruebaempleado {
   public static void main(String args[]){
      Scanner entrada=new Scanner(System.in);
      double sueldo;
      String nombre,apellido;
      System.out.print("Escribe el nombre de empleado1:");nombre=entrada.nextLine();
      System.out.print("Escribe el apellido de empleado1:");apellido=entrada.nextLine();
      System.out.print("Escribe su sueldo:");sueldo=entrada.nextDouble();
      empleado empleado1=new empleado(nombre,apellido,sueldo);

      System.out.print("Escribe el nombre de empleado2:");nombre=entrada.nextLine();<-salta esta entrada
      System.out.print("Escribe el apellido de empleado2:");apellido=entrada.nextLine();
      System.out.print("Escribe su sueldo:");sueldo=entrada.nextDouble();
      empleado empleado2=new empleado(nombre,apellido,sueldo);
Alguien que sepa el problema y que me pueda aconsejar , soy demasiado nuevo en java.
Muchas gracias !

gordo23

El problema es que cuando usas la función nextXXX de la clase Scanner, siendo XXX = Int/Double/etc, esta lo único que lee es el siguiente número pero no te lee el salto de linea ("\n") que se ingresa cuando apretas la tecla Enter. Por lo que el próximo nextLine lee ese salto de linea.

Para solucionar esto podés hacerlo de 2 maneras, una es leer TODAS las entradas con nextLine() y cuando tengas que leer un número usar la función:

sueldo =  Integer.valueOf(entrada.nextLine()); si es que se trata de leer un entero.

La otra es que después de leer un entero con:
sueldo =  entrada.nextInt();

escribir una sentencia abajo:
entrada.nextLine();    para que lea el salto de linea y ahora si puedas usar el próximo nextLine() de manera correcta.


Bueno, eso seria todo, si no entendiste avisa e intento explicarlo de otra forma.

Saludos.-

shadows789

entendi de una, ya lo solucione , gracias por la respuesta :D

gordo23

Buenísimo, de nada.

Saludos.-