Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

[Proyecto] Verificación de compatibilidad para donar sangre

import java.util.Scanner;

public class Donante { public static void main(String[] args) { int años; double peso;

    Scanner scanner = new Scanner(System.in);

    System.out.println(" Ingrese la edad del donante: ");
    años = scanner.nextInt();

    System.out.println(" Ingrese el peso del donante (en kg): ");
    peso = scanner.nextDouble();

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

        if ( peso <= 50 && (años >= 18 && años <= 65)){
            System.out.println(" El donante no es compatible. Motivo: Deber tener un peso mayor a 50 kg ");
        }
        if ( (años > 65 || años < 18) && peso <=50  ){

            System.out.println(" EL donante no es compatible.No cumple ningun requisito ");
        }
    }

}

}

1 respuesta
solución!

Hola Pamela, espero que estés bien

Tu código parece estar bien encaminado, pero hay algunos detalles que podrías ajustar para que los mensajes sean más claros y precisos. Actualmente, tu programa cubre las condiciones necesarias, pero podrías simplificar la lógica para que sea más fácil de seguir y mantener.

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

import java.util.Scanner;

public class Donante {
    public static void main(String[] args) {
        int años;
        double peso;

        Scanner scanner = new Scanner(System.in);

        System.out.println("Ingrese la edad del donante: ");
        años = scanner.nextInt();

        System.out.println("Ingrese el peso del donante (en kg): ");
        peso = scanner.nextDouble();

        if (años >= 18 && años <= 65 && peso > 50) {
            System.out.println("El donante es compatible.");
        } else {
            System.out.println("El donante no es compatible.");
            if (años < 18 || años > 65) {
                System.out.println("Motivo: Debe tener entre 18 y 65 años.");
            }
            if (peso <= 50) {
                System.out.println("Motivo: Debe tener un peso mayor a 50 kg.");
            }
        }
    }
}

En esta versión, primero verificamos si el donante es compatible. Si no lo es, simplemente imprimimos un mensaje que indica que no es compatible y luego verificamos cada criterio individualmente para mostrar el motivo específico.

Espero que esta versión te sea útil y te ayude a entender mejor cómo estructurar las condiciones. ¡Bons estudios!