Java - Problema con código básico

 
Vista:
sin imagen de perfil

Problema con código básico

Publicado por Jimmy (1 intervención) el 07/06/2017 22:23:05
Tengo el siguiente código, el problema es que pareciera que no se ejecuta la útima línea y no se porque, es decir, imprime en pantalla la pregunta ¿Tiene fiebre? y termina la ejecución, no me deja ingresar nada con el teclado. No se que esté pasando. ¿Alguna idea?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.util.Scanner;
public class Prueba{
    public static void main (String [] apps){
 
		String nombre;
		short edad;
		float peso;
		Scanner teclado = new Scanner(System.in);
		String respuesta = new String();
 
		System.out.println("Dime el nombre de tu paciente");
		nombre = teclado.nextLine();
 
		System.out.println("Dime su edad");
		edad = teclado.nextShort();
 
		System.out.println("Dime su peso en kgs");
		peso = teclado.nextFloat();
 
 
		System.out.println("¿Tiene Fiebre?");
		respuesta = teclado.nextLine();
 
 
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Problema con código básico

Publicado por Jordi (135 intervenciones) el 08/06/2017 00:01:41
A mi también me pasó esto en mis inicios en Java, jejeje... Que recuerdos.
Lo que pasa es que cuando usas un Scanner para leer datos de consola, lee la línea hasta encontrar \n (caracter de enter). Una vez ha hecho este procedimiento borra todo el contenido que había tomado anteriormente. Hay un problemilla cuando usas un solo Scanner para leer distintos tipos de datos, esto causa que el carácter \n no se elimine junto al texto que ha tomado, causando que al realizarse un nextLoquesea() interprete el \n que no se había borrado antes de forma instantanea. Tienes dos opciones: la mala que es hacer nextLoquesea() una vez para limpiar el \n y otra vez para solicitar los datos y la forma buena que sería usar un scanner para cada tipo de dato.

Sé bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar