Módulo 2 - Decisões que se ramificam
Decisões dentro de decisões
8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 08/07/2026
O que você vai aprender
- Entender quando uma decisão deve ficar dentro de outra.
- Ler o encaixe de SE dentro de SE acompanhando a indentação.
- Diferenciar aninhamento (uma condição depende da outra) de escada (faixas do mesmo valor).
- Perceber o custo do aninhamento profundo e a necessidade de domá-lo.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Decisões dentro de decisões.
Os objetivos desta aula. Entender quando uma decisão deve ficar dentro de outra. Ler o encaixe de SE dentro de SE acompanhando a indentação. Diferenciar aninhamento (uma condição depende da outra) de escada (faixas do mesmo valor). Perceber o custo do aninhamento profundo e a necessidade de domá-lo.
Veja o essencial, parte por parte.
Perguntas que só fazem sentido em sequência. Decisão aninhada é um SE dentro do bloco de outro SE.
Siga a indentação para não se perder. O maior risco do aninhamento não é a máquina se confundir, é você.
O custo do aninhamento profundo. Aninhar é natural e útil, mas tem um preço quando exagera.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
Perguntas que só fazem sentido em sequência
Pense no acesso a um aplicativo. A primeira pergunta é: esse usuário existe no sistema? Só se a resposta for sim é que a segunda pergunta faz sentido: a senha digitada está correta? Não adianta testar a senha de um usuário que não existe. As duas decisões estão em sequência, uma dependendo da outra, e é isso que o aninhamento representa: a segunda decisão mora dentro do bloco verdadeiro da primeira. Se o usuário não existe, o programa nem chega a olhar a senha, exatamente como na vida real.
se usuario_existe então
se senha_correta então
escreva("Bem-vindo")
senão
escreva("Senha errada")
fim
senão
escreva("Usuário não encontrado")
fimA decisão da senha vive DENTRO do bloco do usuário existe. Repare no recuo que marca o encaixe.
Siga a indentação para não se perder
O maior risco do aninhamento não é a máquina se confundir, é você. Com dois, três, quatro níveis de SE dentro de SE, fica difícil enxergar qual senão pertence a qual se. A ferramenta que salva é a indentação: cada nível mais interno recua um pouco mais para a direita. Quando bater a dúvida sobre a que decisão um senão pertence, alinhe o dedo na vertical: o senão pertence ao se que está no mesmo recuo. Ler pseudocódigo aninhado é, em boa parte, ler o desenho que a indentação forma.
🎮 Jogo da aula
Siga o encaixe
Duas decisões aninhadas decidem se a viagem sai. Acompanhe os dois níveis com os valores dados e escolha a saída.
tem_passagem <- verdadeiro
tem_bagagem_ok <- falso
se tem_passagem então
se tem_bagagem_ok então
escreva("Embarque liberado")
senão
escreva("Resolva a bagagem")
fim
senão
escreva("Compre a passagem")
fimVale distinguir aninhamento de escada, porque parecem primos mas resolvem coisas diferentes. A escada senão-se testa o MESMO valor contra várias faixas (a nota é A, B ou C). O aninhamento testa condições DIFERENTES que dependem uma da outra (o usuário existe e, se existe, a senha bate). Uma dica rápida: se as condições são independentes e do mesmo assunto, provavelmente é escada; se uma só faz sentido depois da outra, é aninhamento. Confundir os dois costuma gerar código mais embolado do que o necessário.
O custo do aninhamento profundo
Aninhar é natural e útil, mas tem um preço quando exagera. Cada nível novo empurra o código mais para a direita e adiciona um par se/fim para a sua cabeça rastrear. Três níveis ainda se leem bem. A partir de quatro ou cinco, o pseudocódigo vira uma seta apontando para o canto da tela, e a chance de ligar um senão ao se errado dispara. Programadores chamam isso, com humor, de código flecha, pela forma de ponta que a indentação desenha. A boa notícia é que existe um antídoto elegante, a cláusula de guarda, que você aprende na última aula deste módulo.
Aninhamento saudável
- Um ou dois níveis, cada um com motivo claro.
- A indentação cabe na largura da tela.
- Fácil dizer a que se cada senão pertence.
Aninhamento exagerado
- Quatro, cinco níveis empilhados.
- O código escorrega para o canto direito (código flecha).
- Alto risco de ligar um senão ao se errado.
Teste rápido
Você precisa decidir: se o cliente é VIP, e SÓ nesse caso, verificar se ele tem cupom para dar desconto extra. Qual estrutura representa melhor essa lógica?
Perguntas frequentes
- Quando devo aninhar em vez de usar duas condições com E?
- Se as duas condições precisam ser verdadeiras e você quer a mesma resposta para qualquer falha, um único SE com E resolve e fica mais simples. Aninhe quando cada nível precisa de um tratamento diferente ao falhar: usuário inexistente dá uma mensagem, senha errada dá outra. Aí o aninhamento separa bem os casos.
- Como sei a que SE um senão pertence?
- Pela indentação: o senão pertence ao se que está no mesmo nível de recuo. Alinhe o dedo na vertical entre o senão e o se acima que compartilha o mesmo recuo. É por isso que manter a indentação arrumada não é firula, é o que torna o código legível.
- Aninhamento deixa o programa mais lento?
- Praticamente nada. O custo do aninhamento é para o ser humano que lê, não para a máquina que executa. O problema do aninhamento profundo é a legibilidade e a chance de erro de quem escreve e mantém, não a velocidade. Por isso o antídoto (cláusula de guarda) é sobre clareza, não desempenho.
- Qual a diferença prática entre aninhamento e escada senão-se?
- A escada testa o mesmo valor contra faixas que se excluem (nota A, B, C). O aninhamento testa condições diferentes e dependentes, uma dentro do resultado da outra (existe o usuário e, então, a senha confere). Se uma condição só faz sentido depois da outra, é aninhamento.
- Existe um limite de níveis de aninhamento?
- A linguagem costuma permitir bastante, mas a legibilidade impõe o limite real. A recomendação prática é evitar passar de dois ou três níveis. Quando o código começa a escorregar para o canto direito da tela, é hora de refatorar com cláusulas de guarda ou separar parte da lógica numa função.
- Posso misturar escada e aninhamento?
- Pode, e é comum. Dentro do ramo verdadeiro de uma decisão pode morar uma escada senão-se, e dentro de um degrau da escada pode morar outra decisão. O importante é manter a indentação clara para que a estrutura continue legível conforme ela cresce.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.