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

Mi solución a este reto:

import java.util.Scanner;

public class blood { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Ingresa la edad: "); int edad = input.nextInt(); System.out.println("Ingresa el peso: "); double peso = input.nextDouble();

    if ((edad >= 18 && edad<= 65) && (peso >50)){
        System.out.println("Peso: " + peso + " Edad: " + edad);
        System.out.println( "Cumples los requisitos para donar");
    } else if ((edad < 18 || edad > 65) && (peso > 50)) {
        System.out.println("El donante no es compatible");
        System.out.println("Peso: " + peso + " Edad: " + edad);
        System.out.println("Motivo: La edad debe estar entre 18 y 65 años");
    }else if((edad >= 18 && edad <= 65) && (peso < 50)){
        System.out.println("El donante no es compatible");
        System.out.println("Peso: " + peso + " Edad: " + edad);
        System.out.println("Motivo: El peso debe ser mayor a 50kg");
    }
}

}

1 respuesta

Hola Leonardo, espero que estés bien

Tu solución está bastante cerca de lo que se pide en el ejercicio. Has implementado correctamente las condiciones para verificar si un donante es compatible para donar sangre. Sin embargo, hay una pequeña mejora que podrías considerar para que el código sea más claro y eficiente.

Actualmente, tienes tres bloques else if para manejar las diferentes condiciones. Puedes simplificar el código utilizando un bloque else al final para manejar el caso en que ni la edad ni el peso cumplen con los criterios. Aquí te dejo una versión optimizada de tu código:

import java.util.Scanner;

public class blood {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Ingresa la edad: ");
        int edad = input.nextInt();
        System.out.println("Ingresa el peso: ");
        double peso = input.nextDouble();

        if ((edad >= 18 && edad <= 65) && (peso > 50)) {
            System.out.println("Peso: " + peso + " Edad: " + edad);
            System.out.println("Cumples los requisitos para donar");
        } else {
            System.out.println("El donante no es compatible");
            System.out.println("Peso: " + peso + " Edad: " + edad);
            if (edad < 18 || edad > 65) {
                System.out.println("Motivo: La edad debe estar entre 18 y 65 años");
            }
            if (peso <= 50) {
                System.out.println("Motivo: El peso debe ser mayor a 50kg");
            }
        }
    }
}

En esta versión, el programa primero verifica si el donante es compatible. Si no lo es, entra en el bloque else donde se imprimen los motivos específicos por los que no cumple con los criterios. Esto hace que el código sea más conciso y fácil de leer.

Espero que esta sugerencia te sea útil. ¡Espero haber ayudado y buenos estudios!