Java - No sé por qué no funciona :c

 
Vista:
Imágen de perfil de Connor665

No sé por qué no funciona :c

Publicado por Connor665 (7 intervenciones) el 03/11/2016 12:40:33
Es un ejercicio sencillo, lo que no entiendo es por qué cuando no introduzco nombre no sale del programa, si no que recoge ese espacio en blanco. Supuestamente limpio el buffer. Gracias.
**************CÓDIGO***********************
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.util.Scanner;
 
public class Nota
{
	public static void main(String[] args)
	{
		String nombre = null;
		float nota = 0;
		Scanner entrada=new Scanner(System.in);
 
		do
		{
			System.out.println("¿Nombre del alumno?");
			entrada.nextLine();
			nombre=entrada.nextLine();
 
			do
			{
				System.out.println("¿Nota del alumno?");
				nota=entrada.nextFloat();
				if(nota>10)
				{
				System.out.println("Nota no válida.");
				break;
				}
				System.out.println("Nombre: " + nombre);
				System.out.println("Nota: " + nota);
 
				if(nota>=5)
				{
					System.out.println("Aprobado!");
					break;
				}
				else
				{
					System.out.println("Suspenso!");
					break;
				}
 
 
			}while(true);
 
		}while(nombre!=null);
	}
}
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

No sé por qué no funciona :c

Publicado por Armando (18 intervenciones) el 03/11/2016 18:02:27
Lo que deseas es que no se cicle?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 144
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

No sé por qué no funciona :c

Publicado por Thanatos (97 intervenciones) el 03/11/2016 18:05:06
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.util.Scanner;
 
class Nota
{
    public static void main(String[] args)
    {
        Scanner entrada = new Scanner(System.in);
        String nombre;
        float nota;
 
        do
        {
            System.out.println("¿Nombre del alumno?");
            nombre = entrada.nextLine().trim();
            if (nombre.isEmpty())
            {
                break;
            }
 
            System.out.println("¿Nota del alumno?");
            nota = entrada.nextFloat();
            if (nota > 10.0f)
            {
                System.out.println("\nNota no válida.\n");
            }
            else
            {
                System.out.println("\nNombre: " + nombre);
                System.out.println("Nota: " + nota);
                if (nota >= 5.0f)
                {
                    System.out.println("Aprobado!\n");
                }
                else
                {
                    System.out.println("Suspenso!\n");
                }
            }
            entrada.nextLine();
        } while (true);
 
        entrada.close();
    }
}
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
Imágen de perfil de Álvaro

No sé por qué no funciona :c

Publicado por Álvaro (7 intervenciones) el 03/11/2016 23:31:04
Muchas gracias! Vaya diferencia de código xd Se nota que acabo de empezar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar