Hola Jose, espero que estés bien
Veo que estás intentando crear un programa para verificar si un donante es compatible para donar sangre. Has hecho un buen trabajo al utilizar operadores lógicos para verificar las condiciones de edad y peso. Sin embargo, parece que hay un pequeño problema en tu lógica de salida de mensajes. Vamos a corregirlo para que el programa indique correctamente qué criterio no fue cumplido.
Aquí tienes una versión ajustada de tu código:
import java.util.Scanner;
public class VerificadorDonante {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Ingrese su edad: ");
int edad = scanner.nextInt();
System.out.println("Ingrese su peso en KG: ");
int peso = scanner.nextInt();
boolean edadValida = edad >= 18 && edad <= 65;
boolean pesoValido = peso > 50;
if (edadValida && pesoValido) {
System.out.println("Usted está apto para 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.");
}
}
scanner.close();
}
}
Con este ajuste, el programa ahora verificará ambos criterios y, si el donante no es compatible, indicará específicamente qué criterio no fue cumplido. Espero que esto te ayude a avanzar en tu aprendizaje de Java.
¡Espero haber ayudado y buenos estudios!