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 Main {
    public static void main(String[] args) {
        //CHECKING IF A NUMBER IS EVEN OR ODD

        Scanner scanner = new Scanner(System.in);
System.out.println("Please enter your age");
        int age = scanner.nextInt();

        System.out.println("Please enter your weight in kg");
        int weight = scanner.nextInt();

        boolean validAge = age >= 18 && age <= 65;
        boolean validWeight = weight > 50;

        if (validAge && validWeight) {
            System.out.println("You can donate blood");
        } else {
            System.out.println("Please avoid to donate blood. Reason is:");
            if (!validAge) {
                System.out.println("You must be in the age range between 18 and 65");
            }
            if (!validAge && !validWeight) {
                System.out.println("And");
            }
        }
        if (!validWeight) {
            System.out.println("You must weight more than 55kg");
        }
    }
}
1 respuesta

Hola Sol, espero que estés bien

Veo que estás trabajando en un programa para verificar la compatibilidad de un donante de sangre. Has hecho un buen trabajo hasta ahora, pero parece que hay un pequeño error en la lógica de tu programa. Vamos a ajustarlo para que cumpla con los requisitos de la actividad.

En tu código, el problema principal es que el mensaje sobre el peso incorrecto menciona que debe ser "más de 55 kg", cuando en realidad debería ser "más de 50 kg", según los criterios dados. Además, la lógica para imprimir los mensajes de error podría simplificarse para que sea más clara.

Aquí te dejo una versión ajustada de tu código:

import java.util.Scanner;

public class Main {
    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();

        boolean validAge = age >= 18 && age <= 65;
        boolean validWeight = weight > 50;

        if (validAge && validWeight) {
            System.out.println("El donante es compatible para donar sangre.");
        } else {
            System.out.println("El donante no es compatible.");
            System.out.println("Motivo:");
            if (!validAge) {
                System.out.println("- Debe tener entre 18 y 65 años.");
            }
            if (!validWeight) {
                System.out.println("- Debe pesar más de 50 kg.");
            }
        }
    }
}

Con estos cambios, el programa debería funcionar correctamente según los requisitos de la actividad. Espero que esto te ayude a avanzar en tu aprendizaje de Java.

¡Espero haber ayudado y buenos estudios!