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

banco de sangre

public class BancoDeSangre { public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);
    System.out.println("Ingrese edad del donante");
    int edadDonante = scanner.nextInt();
    System.out.println("Ingrese peso del donante");
    Double pesoDonante = scanner.nextDouble();

    if(edadDonante >= 18 && edadDonante <= 65 && pesoDonante >= 50){
        System.out.println("El donante es compatible, cumple con todas las exigencias");
    } else if (edadDonante < 18 || edadDonante > 65) {
        System.out.println("El donante no es compatible");
        System.out.println("Motivo: no cumple con los rangos de edad");
    } else if (pesoDonante < 50) {
        System.out.println("El donante no es compatible");
        System.out.println("Motivo: no cumple con el peso minimo establecido");

    }
}

}

1 respuesta

Hola Esteban, espero que estés bien

¡Espero que estés teniendo un buen día! He revisado tu código y parece que estás en el camino correcto para resolver el problema. Sin embargo, hay un pequeño detalle que podrías ajustar para que el programa funcione exactamente como se espera en el ejercicio.

En tu código actual, estás utilizando else if para verificar cada condición por separado después de la primera. Esto puede causar que algunas condiciones no se evalúen si una anterior ya se ha cumplido. En este caso, si la edad no está en el rango correcto, el programa no verifica el peso, incluso si también es un problema.

Para solucionar esto, podrías cambiar la estructura de las condiciones de la siguiente manera:

public class BancoDeSangre {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("Ingrese edad del donante");
        int edadDonante = scanner.nextInt();
        System.out.println("Ingrese peso del donante");
        Double pesoDonante = scanner.nextDouble();

        if (edadDonante >= 18 && edadDonante <= 65 && pesoDonante >= 50) {
            System.out.println("El donante es compatible, cumple con todas las exigencias");
        } else {
            System.out.println("El donante no es compatible");
            if (edadDonante < 18 || edadDonante > 65) {
                System.out.println("Motivo: no cumple con los rangos de edad");
            }
            if (pesoDonante < 50) {
                System.out.println("Motivo: no cumple con el peso minimo establecido");
            }
        }
    }
}

Con este ajuste, si el donante no es compatible, el programa verificará ambos criterios y te dará retroalimentación sobre cuál o cuáles no se cumplen.

Espero que esto te ayude a completar el ejercicio con éxito. ¡Bons estudios!