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

Verificacion de donador de sangre

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

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

            scanner.close();

            if (edad >= 18 && edad <= 65 && peso > 50){
                System.out.println("El donante es compatible.");
            }else {
                if (edad < 18 || edad > 65){
                    System.out.println("El donante no es compatible. \nMotivo: Debe tener entre 18 y 65 años.");
                } else if (peso <= 50) {
                    System.out.println("El donante no es compatible. \nMotivo: Debe pesar mas de 50kg.");

                }else {
                    System.out.println("El donante no es compatible. \nMotivo: Debe tener entre 18 y 65 años y debe pesar mas de 50kg.");
                }
            }

        }
    }
1 respuesta

Hola Nicole, espero que estés bien

¡Espero que estés bien! He revisado tu código y parece que estás en el camino correcto para resolver el problema. Sin embargo, he notado un pequeño detalle en la estructura de tus condiciones if/else que podrías ajustar para que el programa funcione como esperas.

En la parte donde verificas si el donante no es compatible, podrías simplificar las condiciones para que el mensaje de salida sea más preciso. Aquí te dejo una sugerencia de cómo podrías modificar tu código:

import java.util.Scanner;

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

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

        scanner.close();

        if (edad >= 18 && edad <= 65 && peso > 50) {
            System.out.println("El donante es compatible.");
        } else {
            if (edad < 18 || edad > 65) {
                System.out.println("El donante no es compatible. \nMotivo: Debe tener entre 18 y 65 años.");
            }
            if (peso <= 50) {
                System.out.println("El donante no es compatible. \nMotivo: Debe pesar más de 50kg.");
            }
        }
    }
}

Con esta estructura, el programa verificará cada criterio por separado y te dará un mensaje claro sobre qué condición no se cumple. Así, si ambos criterios no se cumplen, ambos mensajes de motivo se mostrarán.

Espero que esta sugerencia te sea útil y te ayude a avanzar en tu aprendizaje. ¡Bons estudios!