Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

alternativas incorretas

Oi pessoal! Entendi que eu precisaria apenas mudar o operador lógico de OU( || ) para E( && ) pois no anunciado da questão as variáveis são true. Mas, em todas as alternativas houve a troca do valor da var gerente, de true passou para false. Qual o impacto do valor false na var gerente? Foi erro no exercicio ou tem alguma lição aqui que não entendi? *Enunciado:

var setorTI = true;
var gerente = true;
if(setorTI == true || gerente == true){
    console.log("Acesso permitido");
}else{
    console.log("Acesso negado")
}

*Alternativa aceita como correta:

var setorTI = true;
var gerente = false;
if(setorTI == true && gerente == true){
    console.log("Acesso permitido");
}else{
    console.log("Acesso negado")
}

Obrigada pelo espaço, parece uma pergunta boba mas eu realmente fiquei na dúvida.

1 resposta
solução!

Bom dia, tudo certo?

Eu entendi que sua dúvida é relacionada ao comportamento do valor false na variável gerente nos cenários com || ou &&.

Quando você utiliza o operador lógico "ou/or" (||), desde que apenas uma condição do IF seja TRUE o resultado do teste será TRUE. Ao usar || você só receberá FALSE quando as duas condições forem FALSE.

Isso significa que ao usar ||, se sua variável gerente for false, o resultado do IF ainda seria TRUE por causa da variável setorTI que é TRUE.

Veja a tabela verdade do OU/OR:

VERDADE + VERDADE = VERDADE
VERDADE + FALSO = VERDADE
FALSO + VERDADE = VERDADE
FALSO + FALSO = FALSO

No caso do && (e / and), você somente terá um TRUE como resultado quando todas as condições no IF forem TRUE.

Isso significa que ao usar &&, você terá um FALSE no seu teste condicional caso sua variável gerente seja FALSE.

Tabela verdade do E/AND:

VERDADE + VERDADE = VERDADE
VERDADE + FALSO = FALSO
FALSO + VERDADE = FALSO
FALSO + FALSO = FALSO

Espero que tenha conseguido ajudar, se a dúvida persistir fico à disposição.