¡Hola Adelina!
He revisado tu código y estás muy cerca de conseguir lo que necesitas. Sin embargo, hay un pequeño error en la lógica de las condiciones if
que impide que el programa funcione correctamente en todos los casos. Vamos a corregirlo.
El problema está en la condición if
que verifica si el donante es compatible. Actualmente, tienes if(edad < 65 && edad > 18 && peso > 50)
, lo cual excluye a los donantes que tienen exactamente 18 o 65 años. Para incluir estos casos, deberías usar if(edad <= 65 && edad >= 18 && peso > 50)
.
Además, en la parte donde verificas qué criterio no fue cumplido, es mejor verificar ambos criterios por separado para dar el mensaje correcto. Aquí tienes una versión corregida del código:
import java.util.Scanner;
public class EsCompatible {
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();
if (edad <= 65 && edad >= 18 && peso > 50) {
System.out.println("El donante es compatible");
} else {
System.out.println("El donante no es compatible");
if (edad < 18 || edad > 65) {
System.out.println("Motivo: Debe tener entre 18 y 65 años.");
}
if (peso <= 50) {
System.out.println("Motivo: Debe pesar más de 50kg");
}
}
scanner.close();
}
}
Con estas modificaciones, el programa debería funcionar correctamente según los criterios que mencionaste. Espero que esto te ayude y que puedas seguir avanzando con tu proyecto. ¡Buenos estudios!