Estruturas Condicionais
Estruturas condicionais permitem que um programa tome decisões. Entenda if, else, else-if, operadores lógicos e evite os erros mais comuns com condicionais.
Renato Freitas
Atualizado em 5 de maio de 2026
Decisões no cotidiano e no código
Tomamos decisões condicionais o tempo todo sem pensar. 'Se estiver chovendo, levarei o guarda-chuva; senão, deixarei em casa.' Essa estrutura SE-ENTÃO-SENÃO é o coração das estruturas condicionais em programação.
Em pseudocódigo, essa lógica fica: SE (chovendo == verdadeiro) ENTÃO (levar guarda-chuva) SENÃO (deixar em casa). O computador avalia a condição entre parênteses — ela é sempre verdadeira ou falsa — e executa o bloco correspondente.
Sem estruturas condicionais, um programa seria apenas uma sequência linear de instruções, sem capacidade de se adaptar a diferentes situações. Toda a inteligência dos softwares modernos — de recomendações de streaming a diagnósticos médicos — está construída sobre esse conceito simples.
🧮 Teste você mesmo — CalcSim
Quer mais recursos? Baixar app CalcSim IA
A estrutura if-then e seus complementos
A estrutura mais simples é o 'if' isolado: SE a condição for verdadeira, execute este bloco; SE for falsa, simplesmente não execute e continue o programa. Esse padrão é usado quando há algo opcional a fazer.
O 'else' adiciona um caminho alternativo: SE verdadeiro, execute o bloco A; SENÃO, execute o bloco B. Um dos dois sempre será executado. O 'else-if' (ou 'elif') encadeia múltiplas condições: SE condição1... SENÃO SE condição2... SENÃO SE condição3... SENÃO (padrão).
Por exemplo, um sistema de notas: SE nota >= 7 ENTÃO 'aprovado'; SENÃO SE nota >= 5 ENTÃO 'recuperação'; SENÃO 'reprovado'. As condições são avaliadas em ordem — quando a primeira verdadeira é encontrada, o bloco correspondente executa e as demais não são testadas.
Condições aninhadas e operadores lógicos
Às vezes, uma decisão depende de múltiplas condições simultâneas. Para isso existem os operadores lógicos: AND (E), OR (OU) e NOT (NÃO). Com AND, ambas as condições precisam ser verdadeiras. Com OR, basta uma ser verdadeira. NOT inverte o resultado.
Exemplo prático: para liberar acesso premium, a condição pode ser 'usuário pagou E assinatura não expirou'. Em pseudocódigo: SE (pagou == verdadeiro E dataExpiracao > hoje) ENTÃO liberar acesso.
Condições aninhadas são 'if' dentro de 'if'. São poderosas mas podem tornar o código difícil de ler se usadas em excesso. Uma boa prática é tentar 'achatar' a lógica usando operadores lógicos antes de recorrer ao aninhamento profundo.
- AND (E): verdadeiro somente se AMBAS as condições forem verdadeiras
- OR (OU): verdadeiro se PELO MENOS UMA condição for verdadeira
- NOT (NÃO): inverte o valor — verdadeiro vira falso e vice-versa
- Parênteses definem precedência: (A E B) OU C é diferente de A E (B OU C)
Operadores de comparação
As condições dentro de um 'if' usam operadores de comparação: igual (==), diferente (!=), maior que (>), menor que (<), maior ou igual (>=), menor ou igual (<=). Cada um retorna verdadeiro ou falso.
Um erro muito comum é confundir o operador de atribuição '=' com o de comparação '=='. Em C, Java e muitas outras linguagens, 'if (x = 5)' não testa se x vale 5 — atribui 5 a x e sempre resulta verdadeiro. O correto é 'if (x == 5)'. Linguagens como Python tratam isso como erro de sintaxe, mas outras aceitam silenciosamente, gerando bugs difíceis de encontrar.
Exemplos em pseudocódigo
Veja um exemplo completo de validação de login: SE (usuario == 'admin' E senha == 'correta') ENTÃO exibir 'Bem-vindo' SENÃO SE (tentativas >= 3) ENTÃO bloquear conta SENÃO incrementar tentativas E exibir 'Senha incorreta'.
Outro exemplo — cálculo de desconto: SE (valorCompra > 500) ENTÃO desconto = 15% SENÃO SE (valorCompra > 200) ENTÃO desconto = 10% SENÃO SE (valorCompra > 100) ENTÃO desconto = 5% SENÃO desconto = 0%. Essa cadeia de else-if é chamada de 'escada de decisão' e é muito comum em sistemas comerciais.
Perguntas frequentes
Qual a diferença entre usar else-if e vários if separados?
Com else-if, quando uma condição é verdadeira, as demais não são avaliadas. Com vários if separados, todas são avaliadas independentemente. Use else-if quando as condições são mutuamente exclusivas (aprovado/recuperação/reprovado). Use if separados quando cada condição é independente e pode ser verdadeira ao mesmo tempo.
O que é curto-circuito em operadores lógicos?
Em expressões com AND, se a primeira condição for falsa, o computador não avalia a segunda (o resultado já é falso de qualquer forma). Com OR, se a primeira for verdadeira, a segunda não é avaliada. Isso importa quando a segunda condição tem efeitos colaterais ou pode causar erros.
Quantos níveis de aninhamento de if são aceitáveis?
Mais de 3 níveis geralmente indica que o código pode ser refatorado. Técnicas como retorno antecipado (return early), uso de operadores lógicos e extração de funções ajudam a reduzir o aninhamento e tornar o código mais legível.
O que é um switch/case e quando usá-lo?
Switch/case é uma estrutura alternativa ao if-else-if para quando você compara uma variável com múltiplos valores fixos possíveis. 'SWITCH (diaDaSemana) CASO segunda: ... CASO terça: ...' É mais legível que uma cadeia longa de else-if quando os valores são discretos e conhecidos.
Este artigo foi útil para você?
Avalie com estrelas para nos ajudar a melhorar o conteúdo.
Faça login para avaliar este artigo.
Ainda tem dúvida?
O Professor IA explica passo a passo
Faça uma pergunta em linguagem natural e receba uma explicação personalizada sobre Lógica de Programação — ou qualquer outro tópico.
Prefere resolver pelo celular?
Baixar o app grátis →Continue aprendendo