Módulo 7 - E, OU e NÃO desenhados

Combinando tudo: parênteses e prioridade

9 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 02/07/2026

O que você vai aprender

  • Aplicar a ordem de prioridade: primeiro NÃO, depois E, por último OU.
  • Prever o resultado de expressões mistas com e sem parênteses.
  • Usar parênteses para tornar a intenção explícita, mesmo quando opcionais.
  • Reescrever condições confusas em versões legíveis.

A ordem que o computador segue (goste você ou não)

Você já conhece esse filme da matemática: 2 + 3 x 4 dá 14, não 20, porque a multiplicação fala mais alto que a soma. A lógica herdou o costume. Quando uma condição mistura operadores sem parênteses, o computador não lê da esquerda para a direita como a gente lê texto: ele resolve primeiro todos os NÃO, depois os E, e só então os OU. Não é capricho: E se comporta como multiplicação de valores lógicos e OU como soma, e a hierarquia veio junto da álgebra que fundamenta os dois.

A expressão tem ingresso OU tem convite E é sócio interpretada de dois jeitos: como o computador lê, tem ingresso OU (tem convite E é sócio), quem tem ingresso entra direto; e com parênteses forçados, (tem ingresso OU tem convite) E é sócio, agora só sócio entra. Abaixo, a regra de prioridade: primeiro NÃO, depois E, por último OU.
A mesma frase, dois sentidos: os parênteses decidem quem entra na festa.

Olhe com calma o exemplo do desenho, porque ele é um bug clássico de portaria. A regra “tem_ingresso OU tem_convite E e_socio”, sem parênteses, deixa entrar QUALQUER pessoa com ingresso, sócia ou não, porque o computador agrupa “(tem_convite E e_socio)” primeiro e o ingresso vira porta independente. Se a intenção do clube era exigir sócio SEMPRE, a condição certa seria “(tem_ingresso OU tem_convite) E e_socio”. Uma dupla de parênteses separa a festa tranquila da confusão na porta.

Prevendo expressões mistas, passo a passo

O método seguro para ler qualquer expressão mista tem três passos. Primeiro, desenhe os parênteses invisíveis que a prioridade cria: circule os NÃO com seus alvos, depois agrupe os E, e o que sobrar são OUs ligando blocos. Segundo, avalie cada bloco de dentro para fora, como na tabela-verdade. Terceiro, desconfie do resultado: se a leitura em voz alta soa diferente da intenção da regra, os parênteses estão no lugar errado (ou faltando).

// chove = V, tem_carona = F, tem_guarda_chuva = V

// Expressão: NÃO chove OU tem_carona E tem_guarda_chuva
// Passo 1 (parênteses invisíveis): (NÃO chove) OU (tem_carona E tem_guarda_chuva)
// Passo 2: (NÃO V) OU (F E V)  ->  F OU F  ->  F

// Com parênteses explícitos mudando a intenção:
// NÃO (chove OU tem_carona) E tem_guarda_chuva
// (NÃO (V OU F)) E V  ->  (NÃO V) E V  ->  F E V  ->  F
// Mesmo resultado aqui, mas por caminhos DIFERENTES: nem sempre coincide!

Os parênteses invisíveis da prioridade, desenhados antes de avaliar. O hábito evita sustos.

🎮 Jogo da aula

A festa do clube

João tem ingresso, não tem convite e NÃO é sócio. O porteiro-robô avalia a condição abaixo. O que acontece?

ingresso <- V
convite <- F
socio <- F

se ingresso OU convite E socio então
    escreva("Pode entrar")
senão
    escreva("Entrada negada")
fim

Vale registrar o que o jogo demonstra: o computador não errou, a condição é que dizia outra coisa. É a regra número 1 do módulo 1 voltando com força: execução literal. Em condição composta, a distância entre o que você QUIS dizer e o que ESTÁ escrito se mede em parênteses. Por isso o hábito profissional é generoso com eles: até quando a prioridade já faria o certo, o parêntese conta ao próximo leitor qual era a intenção.

O estilo profissional: condições que se leem sozinhas

Fechando o módulo, três hábitos de gente grande. Primeiro: parênteses sempre que E e OU dividem a mesma condição, sem exceção, mesmo quando redundantes. Segundo: se a condição passou de duas ou três partes, dê nomes aos pedaços com variáveis lógicas intermediárias: “cliente_vip <- compras >= 10 E cadastro_completo”, e a condição final vira “cliente_vip OU convidado”. Terceiro: leia em voz alta; se você tropeçou falando, o próximo programador vai tropeçar lendo, e o próximo programador costuma ser você daqui a seis meses.

Condição que dá manutenção

  • se NÃO bloqueado E compras >= 10 E cadastro = V OU convidado = V então
  • Uma linha, quatro operadores, zero parênteses: cada leitor entende uma coisa.

Condição que se lê sozinha

  • elegivel <- (NÃO bloqueado) E compras >= 10 E cadastro = V
  • se elegivel OU convidado = V então
  • Pedaços nomeados: a intenção vira código.

Parênteses não são sinal de insegurança; são gentileza com quem lê. O computador dispensa, o humano agradece.

Teste rápido

Sem parênteses, como o computador lê a condição “A OU B E C”?

Perguntas frequentes

A prioridade NÃO > E > OU vale em todas as linguagens?
Nas principais, sim: Python (not, and, or), JavaScript (!, &&, ||), SQL (NOT, AND, OR) e as demais linguagens populares seguem essa hierarquia. Mesmo assim, o estilo profissional usa parênteses em condições mistas, porque legibilidade vale mais que confiança na memória.
Por que o E vem antes do OU e não o contrário?
Herança da álgebra booleana: o E se comporta como multiplicação (V=1, F=0: V E F = 1x0 = 0) e o OU como soma. A matemática já dava prioridade à multiplicação, e a lógica manteve a tradição. A analogia também ajuda a lembrar: E multiplica exigências, OU soma alternativas.
Parênteses demais deixam o código lento?
Não. Parênteses orientam a leitura da expressão antes de o programa rodar; o custo em velocidade é zero. O que parênteses de menos podem custar é um bug de produção, que sai bem mais caro que qualquer caractere extra.
Como quebro uma condição gigante sem mudar o comportamento?
Crie variáveis lógicas intermediárias com nomes que contam a história: “documentos_ok”, “dentro_do_horario”, “cliente_vip”. Atribua cada pedaço e monte a condição final com dois ou três nomes. A tabela-verdade da aula anterior serve para provar que a versão quebrada é equivalente à original.
O que são as leis de De Morgan que citaram na aula do NÃO?
As duas regras de distribuir o NÃO: NÃO (A E B) = (NÃO A) OU (NÃO B), e NÃO (A OU B) = (NÃO A) E (NÃO B). Repare que o NÃO entra e TROCA o operador. São úteis para reescrever condições negadas em versões positivas mais legíveis, e dá para conferi-las com uma tabela-verdade de 4 linhas.
Numa condição com vários E e vários OU, por onde começo a ler?
Desenhe os parênteses invisíveis: primeiro amarre cada NÃO ao seu alvo, depois agrupe as sequências de E em blocos, e por fim leia os OU ligando os blocos. Avalie de dentro para fora. Com o hábito, esse desenho acontece de cabeça em segundos.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.