2
respostas

VerificaDoacaoDeSangue

package br.com.exerciciosdeIFeElse;

import java.util.Scanner;

public class VerificaDoacaoDeSangue {

    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        System.out.println("Informe sua idade: ");
        int idade = entrada.nextInt();
        System.out.println("Informe seu peso: (em kg) ");
        int peso = entrada.nextInt();

        if (idade >= 18 && idade <= 65 && peso >= 50) {
            System.out.println("O doador é compativel");
        } else {
            System.out.println("O doador não é compatível.");
        }
        entrada.close();
    }
}
2 respostas

E aí, João! Tudo bem?

Parabéns! Mantenha o ritmo nos exercícios e continue compartilhando na nossa comunidade.

Percebi que você dominou o uso de estruturas condicionais if e aplicou muito bem múltiplas condições lógicas (&&) para validar os critérios de doação. Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma sugestão para evoluir ainda mais é usar validações com mensagens específicas a fim de orientar melhor o usuário. Veja só:

if (idade < 18 || idade > 65) {
    System.out.println("Idade fora da faixa permitida para doação.");
} else if (peso < 50) {
    System.out.println("Peso insuficiente para doar.");
} else {
    System.out.println("O doador é compatível.");
}

Essa abordagem ajuda a dar um retorno mais detalhado ao usuário, o que enriquece a experiência de uso do programa.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Outra boa abordagem é fazer uma verificação ao passar os valores de int idade = entrada.nextInt(); e int peso = entrada.nextInt();, para evitar um possível InputMismatchException.

Aqui uma abordagem tratando isso:

public class Main {
    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in).useLocale(Locale.ROOT);

        try {
            System.out.println("Informe sua idade: ");
            int idade = entrada.nextInt();

            System.out.println("Informe seu peso: (em kg) ");
            int peso = entrada.nextInt();

            if (idade < 18 || idade > 65) {
                System.out.println("Idade fora da faixa permitida para doação.");
            } else if (peso < 50) {
                System.out.println("Peso insuficiente para doar.");
            } else {
                System.out.println("O doador é compatível.");
            }
        } catch (InputMismatchException e) {
            System.out.println("Mistake: Enter invalid input argument");
        }
        entrada.close();
    }
}

Outra abordagem é tratar a possível entrada de um dado do tipo int, mas que não faça sentido — como, por exemplo, valores negativos para idade e/ou peso. Nesse caso, poderíamos fazer uma verificação e lançar uma exceção caso isso ocorra.

Idade

if (idade < 0) throw new InputMismatchException("Enter invalid input argument");

Peso

if (peso < 0) throw new InputMismatchException("Enter invalid input argument");

Desta forma, evitamos incoerências nos dados que poderiam afetar o resultado final do processo. Este é o seu código refatorado:

package br.com.exerciciosdeIFeElse;

import java.util.InputMismatchException;
import java.util.Locale;
import java.util.Scanner;

public class VerificaDoacaoDeSangue {
    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in).useLocale(Locale.ROOT);

        try {
            System.out.println("Informe sua idade: ");
            int idade = entrada.nextInt();

            if (idade < 0) throw new InputMismatchException("Enter invalid input argument");

            System.out.println("Informe seu peso: (em kg) ");
            int peso = entrada.nextInt();

            if (peso < 0) throw new InputMismatchException("Enter invalid input argument");

            if (idade < 18 || idade > 65) {
                System.out.println("Idade fora da faixa permitida para doação.");
            } else if (peso < 50) {
                System.out.println("Peso insuficiente para doar.");
            } else {
                System.out.println("O doador é compatível.");
            }
        } catch (InputMismatchException e) {
            System.out.println("Mistake: Enter invalid input argument");
        }
        entrada.close();
    }
}