Hola Felipe, espero que estés bien
Veo que estás trabajando en un programa para verificar la compatibilidad de un donante de sangre. Tu código está casi listo, pero hay un pequeño ajuste que puedes hacer para que se alinee con los requisitos de la actividad. Según el contexto, el programa debe indicar específicamente qué criterio no se cumplió si el donante no es compatible.
Te sugiero modificar el método verificarDonante
para que verifique cada criterio por separado y proporcione un mensaje específico si alguno de ellos no se cumple. Aquí tienes un ejemplo de cómo podrías hacerlo:
public void verificarDonante() {
boolean esCompatible = true;
StringBuilder motivos = new StringBuilder();
if (getEdad() < 18 || getEdad() > 65) {
esCompatible = false;
motivos.append("Debe tener entre 18 y 65 años.\n");
}
if (getPeso() <= 50.0) {
esCompatible = false;
motivos.append("Debe pesar más de 50 kg.\n");
}
if (esCompatible) {
System.out.println("El donante cumple con los requisitos");
} else {
System.out.println("El donante no es compatible.");
System.out.println("Motivo(s): " + motivos.toString());
}
}
Con este enfoque, el programa no solo indicará que el donante no es compatible, sino que también especificará qué criterio(s) no se cumplieron. Espero que esta modificación te ayude a completar tu tarea con éxito.
Espero haber ayudado y buenos estudios!