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

Banco de Sangre

import java.util.Scanner;

public class BancoSangre { public static void main(String[] args) {

    Scanner teclado = new Scanner(System.in);

    System.out.println("Ingrese los siguientes data como posible donante\n");
    System.out.println("Cuantos años tiene: ");
    int edad = teclado.nextInt();
    System.out.println("Ingrese su peso actual en Kg: ");
    int peso = teclado.nextInt();

    if (edad >= 18 || edad <= 68  && peso > 50 ){
        System.out.println("Si puede donar sangre");
    }else{
        if(edad < 18 || edad > 68){
            System.out.println("No puede donar sangre por que no cumple con el rango de edad");
        }else {
            System.out.println("No cumple con el peso necesario para donar sangre ");
        }
    }




    teclado.close();

}

}

1 respuesta

Hola Rafael, espero que estés bien

Parece que tienes un pequeño error en la condición de tu estructura if. Según los criterios que se mencionan en la actividad, el donante debe tener entre 18 y 65 años, y pesar más de 50 kg. En tu código, la condición está evaluando incorrectamente el rango de edad debido al uso de operadores lógicos. Aquí te muestro cómo podrías corregirlo:

import java.util.Scanner;

public class BancoSangre {
    public static void main(String[] args) {

        Scanner teclado = new Scanner(System.in);

        System.out.println("Ingrese los siguientes datos como posible donante\n");
        System.out.println("Cuántos años tiene: ");
        int edad = teclado.nextInt();
        System.out.println("Ingrese su peso actual en Kg: ");
        int peso = teclado.nextInt();

        // Corregir la condición del if para que refleje los criterios correctos
        if (edad >= 18 && edad <= 65 && peso > 50) {
            System.out.println("Sí puede donar sangre");
        } else {
            if (edad < 18 || edad > 65) {
                System.out.println("No puede donar sangre porque no cumple con el rango de edad");
            } else {
                System.out.println("No cumple con el peso necesario para donar sangre");
            }
        }

        teclado.close();
    }
}

He corregido la condición if para que use && en lugar de || al verificar el rango de edad, asegurando que ambas condiciones se cumplan simultáneamente. Espero que esto solucione el problema que tenías.

Espero haber ayudado y buenos estudios!