Buenas tardes,
Les comparto mi solución al ejercicio propuesto:
package com.camilodev.ejercicios.condicionales;
import java.util.Locale;
import java.util.Scanner;
public class VerificacionCompatibilidadSangre {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
input.useLocale(Locale.US);
final int EDAD_MINIMA = 18;
final int EDAD_MAXIMA = 65;
final int PESO_MINIMO = 50;
System.out.println("Ingrese la edad del donante:");
int edadDonante = input.nextInt();
System.out.println("Ingrese el peso del donante (en kg):");
double pesoDonante = input.nextDouble();
if(edadDonante <= EDAD_MAXIMA && edadDonante >= EDAD_MINIMA && pesoDonante > PESO_MINIMO){
System.out.println("El donante es compatible.");
}else{
System.out.println("El donante no es compatible");
if((!(edadDonante <= EDAD_MAXIMA) || !(edadDonante >= EDAD_MINIMA)) && !(pesoDonante > PESO_MINIMO)){
System.out.println("Debe tener entre %d y %d años y un peso mayor a %d kg".formatted(EDAD_MINIMA, EDAD_MAXIMA, PESO_MINIMO));
} else if(!(edadDonante <= EDAD_MAXIMA) || !(edadDonante >= EDAD_MINIMA)){
System.out.println("Debe tener entre %d y %d años".formatted(EDAD_MINIMA, EDAD_MAXIMA));
} else if (!(pesoDonante > PESO_MINIMO)) {
System.out.println("Debe tener un peso mayor a %d kg".formatted(PESO_MINIMO));
}
}
input.close();
}
}
Cualquier sugerencia es bienvenida.
Gracias por su atención.