Lógica de ProgramaçãoFundamental· 10 min de leitura

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.

RF

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