Carregando...

Operadores lógicos

A comparação deu uma resposta sim/não. No trabalho real muitas vezes precisa de várias ao mesmo tempo: idade suficiente e pontuação alta? membro ou convidado permitido? As ferramentas que unem ou invertem essas respostas são os operadores lógicos: &&, || e !. Você já conhece truthy e falsy; aqui aprende a ler os três símbolos do dia a dia e a confiar no boolean que produzem.

O que é um operador lógico?

Um operador lógico trabalha com valores parecidos com boolean. Não guarda num nome (=) e não pergunta «mesmo valor?» (===). Ele combina ou inverte resultados sim/não. Depois de true && false, o resultado é false. Depois de true || false, é true. Depois de !false, é true. Pode registar esse boolean, guardá-lo numa variável ou escrevê-lo na página.

Os operadores em resumo

📊 Operadores lógicos do dia a dia

Operador Leitura quotidiana Resultado típico
&& os dois lados passam? true && true → true
! inverter sim/não !false → true

Mantenha esta folha à mão. Para iniciantes, alimente estes operadores com booleanos claros de comparações (age >= 18) ou os literais true / false. Outros valores também contam como truthy ou falsy, mas um sim/não honesto reduz bugs.

AND com &&

javascript
console.log(true && true);
console.log(true && false);
console.log(false && true);
console.log(false && false);
let ok = true;
console.log(ok && true);

&& precisa dos dois lados

Dois ampersands significam «e». Ambos os lados devem ser truthy para a expressão inteira o ser. Se o esquerdo falha, a resposta combinada já é não — não existe «meio sim».

A consola imprime true, false, false, false, true. Só a primeira e a última linha passam nos dois lados. Pense numa porta com duas fechaduras: as duas chaves têm de funcionar.

OR com ||

javascript
console.log(true || true);
console.log(true || false);
console.log(false || true);
console.log(false || false);
let guest = false;
console.log(guest || true);

|| precisa de um lado

Duas barras verticais significam «ou». Se qualquer lado for truthy, a expressão inteira é truthy. Só quando ambos falham obtém false.

Vê true, true, true, false, true. Só a quarta linha é falha total. Um caminho aberto basta — como uma porta com duas chaves distintas em que qualquer uma abre sozinha.

NOT com !

javascript
console.log(!true);
console.log(!false);
let ready = false;
console.log(!ready);
let open = true;
console.log(!open);

! inverte a resposta

Um único ! à frente significa «não». Truthy torna-se falsy e o contrário. !ready serve quando quer «ainda não está pronto?» sem reescrever uma comparação mais longa.

A consola imprime false, true, true, false. ready era false, por isso !ready é true. open era true, por isso !open é false.

Unir resultados de comparação

javascript
let age = 20;
let score = 75;
console.log(age >= 18 && score >= 60);
console.log(age >= 18 && score >= 90);
let member = false;
let pass = true;
console.log(member || pass);

Una comparações num só teste

A lógica do dia a dia quase sempre envolve resultados de comparação. age >= 18 && score >= 60 faz duas perguntas de ordem e une-as com «e». member || pass pergunta se algum caminho está aberto. Deixe === / >= para as perguntas; && / || para combinar as respostas.

Guardar um flag combinado

javascript
let age = 20;
let score = 75;
let allowed = age >= 18 && score >= 60;
console.log(allowed);
let member = false;
let guestOk = true;
let enter = member || guestOk;
console.log(enter);

allowed é true (os dois testes passam). enter é true porque o caminho de convidado está aberto mesmo com member a false. A expressão lógica já produziu o boolean — só lhe deu um nome.

Mostrar um portão na página

Calcule um boolean combinado e escreva um rótulo curto na página.

Portão de página com operadores lógicos

html
<!DOCTYPE html>
<html>
<head>
<title>Logical — page gate</title>
</head>
<body>
<p id="out">…</p>
<script>
let age = 20;
let score = 75;
let allowed = age >= 18 && score >= 60;
let box = document.getElementById("out");
box.textContent = "allowed=" + allowed;
</script>
</body>
</html>

age é 20 e score é 75, ambos os lados de && passam e a página mostra allowed=true. Baixe score para 50, atualize e deve ver allowed=false. Mais tarde ramifica com if; esta demo só imprime o sim/não combinado.

Experimente você

  1. Registe true && false e true || false.
  2. Registe !false e !true.
  3. Defina let age = 16 e registe age >= 18 && age < 65.
  4. Defina let age = 30 e registe o mesmo teste de intervalo.
  5. Veja false || true ao lado de false && true e note a diferença.
  6. Na demo HTML mude só score, atualize e leia o novo texto allowed=.

Erros comuns

  • Escrever um único & ou | — iniciantes querem && e ||
  • Usar && quando queria === (combinar vs «igual?»)
  • Esperar que && compare dois números sozinho — envolva cada lado numa comparação primeiro
  • Esquecer que ! inverte todo o boolean à frente
  • Alimentar valores confusos antes de ler truthy/falsy com calma — comece com resultados claros de comparação

Resumo

  • Operadores lógicos combinam ou invertem resultados sim/não
  • && precisa dos dois lados; || de pelo menos um; ! inverte
  • Una resultados de comparação (age >= 18 && score >= 60) para testes do dia a dia
  • Guarde o boolean se quiser um nome; mostre na página se quiser um rótulo
  • Símbolos de comparação e lógicos têm trabalhos diferentes
  • Seguinte: if-else — usar estes booleanos para escolher que código corre

🧠 Teste Seu Conhecimento

Pronto para Começar

Teste Seu Conhecimento

Desafie-se com este questionário interativo e veja o quão bem você entende o tópico

❓
8
Perguntas
🎯
70%
Para Passar
♾️
∞
Tempo
🔄
∞
Tentativas

📝 Instruções

  • Leia cada pergunta cuidadosamente
  • Selecione a melhor resposta para cada pergunta
  • Você pode refazer o quiz quantas vezes quiser
  • Seu progresso será mostrado no topo