1
resposta

Desafios if-else [resolvido]

Utilizando e testando o fórum pela primeira vez :)

    public static void parOuImpar(int valor) {
        String res = ((valor & 1) == 0 ? "par" : "impar");
        System.out.printf("O valor %d é %s%n", valor, res);
    }

    public static void determinaAprovacao(double nota) {
        if (nota > 10 || nota < 0) {
            System.out.println("Nota: " + nota + " é inválida");
            return;
        }
        String res =
                nota >= 7 ? "foi aprovado" :
                nota >= 5 ? "está de recuperação" : "foi reprovado";
        System.out.printf("O estudante teve média %.2f e %s%n", nota, res);
    }

    public static void verificaSenha(String senha) {
        String senhaPredefinida = "123456";
        String res = senha.equals(senhaPredefinida) ? "Acesso permitido" : "Acesso negado";
        System.out.println(res);
    }

    public static void verificaNumeroMaior(int num1, int num2) {
        if (num1==num2) {
            System.out.println("os números são iguais");
            return;
        }
        System.out.println("O número " + ((num1>num2) ? num1:num2) + " é maior");
    }

    public static void verificaDiaUtil(String diaDaSemana) {
        Map<String, Boolean> map = Map.of(
                "segunda", true,
                "terca", true,
                "quarta", true,
                "quinta", true,
                "sexta", true,
                "sabado", false,
                "domingo", false
        );

        diaDaSemana = diaDaSemana.trim().toLowerCase();
        if(!map.containsKey(diaDaSemana)) {
            System.out.println("Insira um dia válido");
            return;
        }

        String res = map.get(diaDaSemana) ? " é " : " não é ";
        System.out.println(diaDaSemana + res + "um dia útil");
    }

    public static void verificaTriangulo(int lado1, int lado2, int lado3) {
        if ( !((lado1+lado2 > lado3) && (lado2+lado3 > lado1) && (lado1+lado3 > lado2)) ) {
            System.out.println("Não é um triângulo");
            return;
        }

        System.out.println("É um triângulo");
    }

    public static void verificaDoador(int idade, int peso) {
        boolean idadeCorreta = idade >= 18 && idade <= 65;
        boolean pesoCorreto = peso > 50;
        String motivo = "Motivo: ";
        if (!idadeCorreta || !pesoCorreto) {
            System.out.println("Doador não compatível");
            if (!idadeCorreta) System.out.println(motivo + "a idade do doador deve ser entre 18 e 65 anos");
            if (!pesoCorreto) System.out.println(motivo + "o peso do doador deve ser maior que 50kg");
            return;
        }
        System.out.println("Doador compatível");
    }

    public static void verificaAcesso(int codigo, int nivelPermissao) {
        int codigoSecreto = 2023;

        boolean codigoCorreto = codigoSecreto == codigo;
        boolean nivelPermissaoCorreto = nivelPermissao <= 3 && nivelPermissao >= 1;
        if (!codigoCorreto || !nivelPermissaoCorreto) {
            System.out.println("Acesso não permitido");
            if (!codigoCorreto) System.out.println("Código incorreto");
            if (!nivelPermissaoCorreto) System.out.println("Nível de permissão incorreto");
            return;
        }
        System.out.println("Acesso permitido.");
    }

Testes:

public static void testes() {
        for(int i = -2; i < 3; i++) {
            parOuImpar(i);
        }
        System.out.println("******");
        double[] notas = {11, 10, 7.1, 7.0, 6.9, 5, 4.9, 0, -1};
        for(double nota : notas) {
            determinaAprovacao(nota);
        }
        System.out.println("******");
        verificaSenha("1234"); // senha incorreta
        verificaSenha("123456");
        System.out.println("******");
        verificaNumeroMaior(1,2);
        verificaNumeroMaior(1,1);
        System.out.println("******");
        verificaDiaUtil("segunda");
        verificaDiaUtil("Segunda");
        verificaDiaUtil(" Segunda ");
        verificaDiaUtil("terça"); // 'Ç' não é válido
        verificaDiaUtil("quarta");
        verificaDiaUtil("sabado");
        verificaDiaUtil("domingo");
        System.out.println("******");
        verificaTriangulo(3,4,5);
        verificaTriangulo(5,5,20); // inválido
        System.out.println("******");
        verificaDoador(18,55); // compatível
        verificaDoador(17,55); // idade incompatível
        verificaDoador(65,55); // compatível
        verificaDoador(66,49); // idade e peso incompatíveis
        System.out.println("******");
        verificaAcesso(2023,1); // permitido
        verificaAcesso(2023,3); // permitido
        verificaAcesso(2023,4); // nivel invalido
        verificaAcesso(2021,1); // codigo invalido
        verificaAcesso(2021,4); // codigo e nivel invalidos
 }
1 resposta

Oi, Tirso! Como vai?

Obrigada por compartilhar seu código com a comunidade Alura.

Seu código tá muito bem estruturado. Destaque para a função verificaDiaUtil, que trata entradas com espaços e letras maiúsculas — isso mostra atenção aos detalhes.

Ícone de sugestão

Para saber mais:

A título de curiosidade, as estruturas if e else são uma das formas mais simples e importantes de controlar o fluxo de execução de um programa. Com elas, é possível tomar decisões com base em condições lógicas — algo essencial em praticamente qualquer aplicação, desde jogos até sistemas bancários.

Em Java, o uso dessas estruturas é bem direto e contribui para deixar o código mais claro e organizado. Se quiser explorar mais sobre como aplicar if, else e até else if em diferentes situações, vale conferir a documentação oficial da Oracle.

Alura

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