¡Hola Estudiante, espero que estés bien!
Parece que estás en el camino correcto con tu función verificarDonante
. Sin embargo, para cumplir con el requisito de especificar exactamente qué criterio no fue cumplido, podrías ajustar un poco el código para verificar cada condición por separado y proporcionar un mensaje más detallado. Aquí te dejo un ejemplo de cómo podrías hacerlo:
public void verificarDonante(int edad, double peso) {
boolean edadValida = edad >= 18 && edad <= 65;
boolean pesoValido = peso > 50;
if (edadValida && pesoValido) {
System.out.println("Puede donar sangre.");
} else {
System.out.println("El donante no es compatible.");
if (!edadValida) {
System.out.println("Motivo: Debe tener entre 18 y 65 años.");
}
if (!pesoValido) {
System.out.println("Motivo: Debe pesar más de 50 kg.");
}
}
}
Con este ajuste, el programa verificará cada condición por separado y te dará un mensaje específico para cada criterio que no se cumpla. Por ejemplo, si la edad está fuera del rango y el peso es insuficiente, ambos mensajes de error se mostrarán.
Espero que esta sugerencia te ayude a mejorar tu programa. ¡Espero haber ayudado y buenos estudios!