Buenas
Tengo el siguiente código:
spoilerimport java.util.Scanner;
public class ScannerCadena
{
public static void main(String[] args)throws Exception
{
String nombre;
String mostrarnombre;
int edad;
int mostraredad;
String ciudad;
String mostrarciudad;
double tiempo;
double mostrartiempo;
int resp=0;
Cadena cadena1=new Cadena();
Scanner keyboard=new Scanner(System.in);
do
{
System.out.println("Bienvenido a la aplicación Datos de un Corredor.");
System.out.println("Introduce a continuación el nombre.");
nombre=keyboard.nextLine();
System.out.println("Introduce a continuación la edad.");
edad=keyboard.nextInt();
System.out.println("Introduce a continuación la ciudad de su mejor marca.");
ciudad=keyboard.nextLine();
System.out.println("Introduce a continuación el mejor tiempo.");
tiempo=keyboard.nextDouble();
mostrarnombre=cadena1.nombre(nombre);
mostraredad=cadena1.edad(edad);
mostrarciudad=cadena1.ciudad(ciudad);
mostrartiempo=cadena1.tiempo(tiempo);
System.out.println("El corredor se llama "+mostrarnombre+" y tiene "+mostraredad+" de edad.\nSu mejor marca fue en "+mostrarciudad+" con un tiempo de "+mostrartiempo+" horas.");
System.out.println("¿Quieres introducir otro Corredor?\nPara introducir otro corredor pulsa 1.\nPara salir pulsa cualquier otro número.");
resp=keyboard.nextInt();
}
while (resp==1);
System.out.println("Gracias por utilizar la aplicación Datos de un Corredor.");
}
}
El problema está en:
spoilerSystem.out.println("Introduce a continuación el nombre.");
nombre=keyboard.nextLine();
System.out.println("Introduce a continuación la edad.");
edad=keyboard.nextInt();
System.out.println("Introduce a continuación la ciudad de su mejor marca.");
ciudad=keyboard.nextLine();
System.out.println("Introduce a continuación el mejor tiempo.");
tiempo=keyboard.nextDouble();
Ya que cuando introduces la edad, aparece el mensaje de la marca pero no deja introducir por teclado, y pasa directamente al mejor tiempo. Además, en el mejor tiempo no me deja poner 1.5 por ejemplo, sólo enteros.
¿Por qué?
Es decir, esto aparece en consola (uso Eclipse):
spoilerBienvenido a la aplicación Datos de un Corredor.
Introduce a continuación el nombre.
MediaVida
Introduce a continuación la edad.
30
Introduce a continuación la ciudad de su mejor marca.
Introduce a continuación el mejor tiempo.
1
El corredor se llama MediaVida y tiene 30 de edad.
Su mejor marca fue en con un tiempo de 1.0 horas.
¿Quieres introducir otro Corredor?
Para introducir otro corredor pulsa 1.
Para salir pulsa cualquier otro número.
Gracias!
EDIT: Solucionado. Para introducir el double hay que poner comas, por ejemplo 1,5.
En cuanto a lo otro, parece que al pulsar Enter en la Consola interpreta un nextLine y se lo salta.
¿La solución?
Introducir después de edad=keyboard.nextInt(); la siguiente línea: keyboard.nextLine();