Hola a todos, estoy probando en Java como realizar una petición de datos. Tras importar la librería (corríjanme si no llamo a las cosas por su nombre) java.util.scanner directamente en la clase donde inicializo las variables a tratar y realizo la petición de esos datos una vez creado un objeto de tipo scanner. El caso es que he creado dos variables: una de tipo int valor y otra de tipo String nombre. A la hora de realizar la petición en el siguiente orden, primero el nombre y luego el valor no tengo problema para introducir los datos y a continuación mostrarlos en pantalla. Pero si invierto el orden de petición, la aplicación termina una vez he introducido el valor de tipo entero en primer lugar. A continuación les muestro el código del programa:
Clase donde realizo la petición de datos y a continuación los muestro
package LectorVariables;
import java.util.Scanner;
/**
*
* @author carpediem22
*/
public class DatoIn {
int valor;
String nombre;
Scanner lector = new Scanner(System.in);
DatoIn(){
valor = 0;
nombre = "";
}
void IntroducirDato(){
DatoIn entrada = new DatoIn();
System.out.println("Introduce nombre: ");
entrada.nombre = lector.nextLine();
System.out.println("Introduce valor: ");
entrada.valor = lector.nextInt();
System.out.println("El nombre introducido es " + entrada.nombre);
System.out.println("El valor introducido es " + entrada.valor);
//Diferente orden en la petición de datos
System.out.println("Introduce valor: ");
entrada.valor = lector.nextInt();
System.out.println("Introduce nombre: ");
entrada.nombre = lector.nextLine();//Durante la ejecución no puedo introducir este dato
System.out.println("El valor introducido es " + entrada.valor);
System.out.println("El nombre introducido es " + entrada.nombre);
}
}
Clase donde creo el objeto de la clase DatoIn y realizo la llamada al metodo correspondiente al tratamiento de datos que pido por teclado y seguidamente muestro en pantalla.
package LectorVariables;
/**
*
* @author carpediem22
*/
public class ClasePrincipal {
public static void main(String[] args){
DatoIn variable = new DatoIn();
variable.IntroducirDato();
}
}
¿Alguien podría decirme que estoy haciendo mal?
Espero noticias.
Gracias de antemano.....y saludos