Hola Paloma, espero que estés bien
¡Qué bueno que estás practicando con Java! Tu código está casi perfecto para resolver el problema de verificación de compatibilidad para donar sangre. Solo hay un pequeño detalle que podrías ajustar para que el mensaje de salida sea más claro y se alinee con el ejemplo proporcionado.
Tu código ya verifica correctamente si el donante cumple con los criterios de edad y peso. Sin embargo, podrías ajustar los mensajes de salida para que sean más específicos y claros, como en el ejemplo que mencionas. Aquí te dejo una versión ligeramente modificada de tu código:
import java.util.Scanner;
public class Maria {
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): ");
double peso = scanner.nextDouble();
boolean edadAceptada = (edad >= 18 && edad <= 65);
boolean pesoAceptado = peso > 50;
if (edadAceptada && pesoAceptado) {
System.out.println("El donante es compatible para donar sangre.");
} else {
System.out.println("El donante no es compatible.");
if (!edadAceptada) {
System.out.println("Motivo: Debe tener entre 18 y 65 años.");
}
if (!pesoAceptado) {
System.out.println("Motivo: Debe pesar más de 50 kg.");
}
}
}
}
Con este ajuste, el programa primero indica que el donante no es compatible y luego proporciona el motivo específico o motivos por los cuales no cumple con los criterios. Espero que esta modificación te ayude a lograr el resultado esperado.
¡Espero haber ayudado y buenos estudios!