¡Hola Karol!
Tu código está casi perfecto para resolver el problema de verificar la compatibilidad para donar sangre. Sin embargo, hay un pequeño detalle que podrías ajustar para que el mensaje sea más claro cuando el donante no cumpla con ambos criterios. Actualmente, tu código solo verifica un criterio a la vez en la sección del else
. Para mejorar esto, podrías modificar la lógica para que verifique y muestre ambos motivos si es necesario. Aquí te dejo una sugerencia de cómo podrías hacerlo:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Ingrese la edad del donante: ");
int edad = scanner.nextInt();
System.out.println("Ingrese el peso del donante (en kg): ");
int peso = scanner.nextInt();
if (edad >= 18 && edad <= 65 && peso > 50) {
System.out.println("El donante es compatible para donar sangre.");
} else {
System.out.println("El donante no es compatible. Motivo:");
if (edad < 18 || edad > 65) {
System.out.println("- Debe tener entre 18 y 65 años.");
}
if (peso <= 50) {
System.out.println("- Debe pesar más de 50 kg.");
}
}
}
}
Con este ajuste, el programa ahora verificará ambos criterios y mostrará todos los motivos que impiden que el donante sea compatible. Por ejemplo, si el donante tiene 17 años y pesa 45 kg, el programa indicará ambos motivos por los cuales no es compatible.
Espero haber ayudado y buenos estudios!