Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Proyecto] 06 Verificando aprobación en una asignatura

Clase

        public void aprobarAsignatura(float promedio){
        if(promedio >= 7){
            System.out.println("El estudiante tuvo un promedio de " + promedio + " y fue aprobado.");
        } else if (promedio >= 5 || promedio <= 6.9) {
            System.out.println("El estudiante tuvo un promedio de " + promedio + " y está en recuperación.");
        } else{
            System.out.println("El estudiante tuvo un promedio de " + promedio + " y fue reprobado.");
        }
    }

Main

                    Ejercicio ejercicio = new Ejercicio();
                    Scanner teclado = new Scanner(System.in);
                    System.out.println("Ingresa un promedio entre 1 y 10");
                    float num1 = teclado.nextFloat();
                    ejercicio.aprobarAsignatura(num1);

Resultado

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta

Hola Michael, espero que estés bien

Parece que hay un pequeño error en la lógica de tu condicional else if. Actualmente, la condición promedio >= 5 || promedio <= 6.9 siempre será verdadera para cualquier número, ya que cualquier número es mayor o igual a 5 o menor o igual a 6.9. Esto hace que la última condición nunca se ejecute.

Para corregir esto, deberías cambiar el operador || (OR) por && (AND) para que la condición sea verdadera solo cuando el promedio esté entre 5 y 6.9. Aquí tienes la corrección:

public void aprobarAsignatura(float promedio){
    if(promedio >= 7){
        System.out.println("El estudiante tuvo un promedio de " + promedio + " y fue aprobado.");
    } else if (promedio >= 5 && promedio <= 6.9) {
        System.out.println("El estudiante tuvo un promedio de " + promedio + " y está en recuperación.");
    } else{
        System.out.println("El estudiante tuvo un promedio de " + promedio + " y fue reprobado.");
    }
}

Con este cambio, el programa debería funcionar correctamente y mostrar el mensaje adecuado para cada rango de promedios.

Espero haber ayudado y buenos estudios!