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

[Ejercicio] Verificación de compatibilidad para donar sangre

La solución que realice para validar si el donante era apto o no es:

public class Main {
    public static void main(String[] args) {
        ValidarPersona validarPersona = new ValidarPersona();
        validarPersona.ingresoDatos();
        validarPersona.validarPersona();

    }
}
import java.util.Scanner;

public class ValidarPersona {
    private int edad;
    private double peso;
    Scanner teclado = new Scanner(System.in);

    public void ingresoDatos(){
        System.out.println("Ingrese por favor su edad: ");
        edad = teclado.nextInt();
        System.out.println("Ingrese el valor de su peso en (kg): ");
        peso = teclado.nextDouble();
    }

    public void validarPersona(){
        if (edad >= 18 && edad <=65 && peso > 50){
            System.out.println("El donate es compatible para donar sangre.");
        }else{

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

            }
        }
        teclado.close();
    }


}

1 respuesta

Hola Edwin, espero que estés bien

Tu solución para verificar la compatibilidad de un donante de sangre parece estar bien encaminada. El programa pide la edad y el peso del donante y luego verifica si cumple con los criterios necesarios. Sin embargo, hay un pequeño ajuste que podrías considerar para mejorar la claridad del mensaje cuando el donante no cumple con ambos criterios.

Actualmente, tu código maneja bien los casos en que el donante no cumple con uno de los criterios, pero si ambos criterios no se cumplen, solo se muestra el mensaje del primer criterio que falla. Podrías modificar el método validarPersona para que indique todos los criterios que no se cumplen. Aquí te dejo una sugerencia sobre cómo podrías hacerlo:

public void validarPersona() {
    boolean esCompatible = true;
    StringBuilder mensaje = new StringBuilder("El donante no es compatible.\nMotivo:");

    if (edad < 18 || edad > 65) {
        mensaje.append("\n- Debe tener entre 18 y 65 años.");
        esCompatible = false;
    }
    if (peso <= 50) {
        mensaje.append("\n- Debe pesar más de 50 kg.");
        esCompatible = false;
    }

    if (esCompatible) {
        System.out.println("El donante es compatible para donar sangre.");
    } else {
        System.out.println(mensaje.toString());
    }
    teclado.close();
}

Con este ajuste, si un donante no cumple con ambos criterios, el programa mostrará ambos motivos. Por ejemplo, si un donante tiene 17 años y pesa 49 kg, el programa indicará ambos problemas.

Espero que esta sugerencia te sea útil y que puedas seguir avanzando en tu aprendizaje de Java. ¡Espero haber ayudado y buenos estudios!