Hola Juan,
Tu código para verificar si un donante es compatible para donar sangre parece estar bien estructurado y cumple con los requisitos mencionados en el ejercicio. Estás utilizando correctamente las estructuras condicionales para verificar los criterios de edad y peso.
Aquí tienes un par de sugerencias para asegurarte de que tu código sea lo más claro y eficiente posible:
Comentarios: Aunque tu código es bastante claro, agregar comentarios puede ayudar a otros (o a ti mismo en el futuro) a entender rápidamente qué hace cada parte del código.
Mensajes de salida: Ya estás manejando bien los mensajes de salida. Asegúrate de que el mensaje "El donante no es compatible." se imprima antes de los motivos, lo cual ya estás haciendo correctamente.
Validación de entrada: Considera agregar una validación para asegurarte de que el usuario ingrese valores numéricos válidos para la edad y el peso. Esto puede evitar errores si se ingresan datos no válidos.
Aquí tienes un pequeño ejemplo de cómo podrías agregar un comentario y una validación sencilla:
// Verifica si el donante cumple con los criterios de edad y peso
if (edad >= 18 && edad <= 65) {
if (peso >= 50) {
resultado.add(compatible);
} else {
resultado.add(noCompatible);
resultado.add(motivo2);
}
} else {
resultado.add(noCompatible);
resultado.add(motivo1);
}
Espero que estas sugerencias te sean útiles. ¡Espero haber ayudado y buenos estudios!