Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Verificación de compatibilidad para donar sangre

import java.util.Scanner;

public class BloodDonation {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("Ingrese la edad del donante:");
        int age = scanner.nextInt();
        System.out.println("Ingrese el peso del donante (en kg):");
        int weight = scanner.nextInt();
        scanner.close();

        boolean isValidAge = age >= 18 && age <= 65;
        boolean isValidWeight = weight > 50;

        if (isValidAge && isValidWeight) {
            System.out.println("El donante es compatible para donar sangre.");
        } else {
            System.out.println("El donante no es compatible.");
            System.out.println("Motivo(s):");
            String reason = "";

            if (!isValidAge) {
                reason += """
                        - Debe tener entre 18 y 65 años.
                        """;
            }

            if (!isValidWeight) {
                reason += """
                        - Debe tener más de 50kg de peso.
                        """;
            }

            System.out.print(reason);
        }
    }
}
1 respuesta

¡Hola Esteban, espero que estés bien!

Tu código para verificar la compatibilidad de un donante de sangre se ve bastante bien y parece que cumple con los requisitos del ejercicio. Estás utilizando correctamente las estructuras condicionales para determinar si el donante cumple con los criterios de edad y peso.

Vamos a revisar algunos puntos importantes:

  1. Entrada de datos: Estás utilizando Scanner para recibir la edad y el peso del donante, lo cual es correcto.

  2. Condiciones de compatibilidad: Has definido correctamente las condiciones isValidAge y isValidWeight para verificar si el donante es compatible.

  3. Salida de mensajes: El uso de if y else para determinar si el donante es compatible y para listar los motivos de no compatibilidad está bien implementado.

  4. Formato de salida: Estás utilizando cadenas multilínea para los mensajes de los motivos, lo cual es una buena práctica para mantener el código limpio y legible.

Tu programa ya está cumpliendo con lo que se solicita en el ejercicio. Aquí tienes un ejemplo de cómo se comportaría tu programa con una entrada específica:

Ejemplo de entrada:

Ingrese la edad del donante: 17
Ingrese el peso del donante (en kg): 55

Salida esperada:

El donante no es compatible.
Motivo(s):
- Debe tener entre 18 y 65 años.

Tu código debería producir exactamente esta salida, lo que significa que está funcionando correctamente.

Espero que esta explicación te sea de ayuda y que continúes practicando con éxito. ¡Bons estudos!