2
respostas

Dúvida código de exemplo

public class teste {

        public static void main(String[] args){
            System.out.println("testando condicionais");

            int idade = 20;
            int quantidadePessoas = 3;    
            boolean acompanhado;

            if (quantidadePessoas >= 2) {
                acompanhado = true;
            }else {
                acompanhado = false;
            }

            if (idade >=18 || acompanhado){
DÚVIDA NO IF ACIMA A VARIÁVEL ACOMPANHADO NÃO DEVERIA TER UMA CONDIÇÃO SE A MESMA É TRUE OU FALSE?
            System.out.println("Seja bem vindo"); 
            } else {
                System.out.println("infelizmente voce nao pode entrar");
        }

    }
}
2 respostas

Oi Tiago,

O if avalia condições booleanas. Se você tem uma variável booleana e quiser fazer a comparação, o valor da condição será o próprio valor da variável e por isso a comparação com true ou false acaba sendo desnecessária. Exemplo:

  • variável acompanhado possui valor true:

    • acompanhado == true retorna true
  • variável acompanhado possui valor false:

    • acompanhado == true retorna false

Como o resultado é o próprio valor da variável acompanhado, a comparação não é necessária.

Ficou mais claro?

Abraço!

Olá Thiago, A condição do "acompanhado" vc ja realizou no primeiro bloco: if (quantidadePessoas >= 2) { acompanhado = true; }else { acompanhado = false; } Neste caso será verdadeiro pois vc atribuiu o valor 3 ao atributo "quantidadedePessoas". E caso seja igual ou maior que 2 será verdadeiro. No segundo bloco de condição if, vc faz uma verificação/condição "ou", onde se uma das variáveis (ou as duas) forem verdadeiras(1) a saída será verdadeira(1), se as duas variaveis forem falsas(0) a saída é falsa(0). uma analogia legal seria o seguinte: 0+0=0 / 0+1=1 / 1+0=1 / 1+1=1 (o simbolo + representa "ou"). No caso paresentadoas duas variáveis são verdadeiras (1) e a saída será ""Seja bem vindo", ou seja, verdadeira (1).