Olá, pessoal! Vamos dar continuidade ao nosso treinamento no canal Ralf Lima. Hoje vamos aprender sobre a condicional aninhada e entender como estruturar tomadas de decisão mais detalhadas no Go.
Dizemos que uma condicional está aninhada quando colocamos **uma estrutura if ou else dentro de outra**. Essa técnica é extremamente útil quando uma decisão depende diretamente do resultado de uma decisão anterior. É como criar um filtro onde o código só faz um segundo teste se passar com sucesso pelo primeiro.
No nosso cenário prático, precisamos avaliar duas regras para o aluno: a quantidade de faltas e a nota média. Veja o fluxo de checagem na tabela abaixo:
| Camada da Condicional | Critério Avaliado | Comportamento do Programa |
|---|---|---|
| Condicional Externa (Principal) | Quantidade de faltas | Se o número de faltas for maior que 10, o aluno é reprovado direto. O programa nem olha a nota. |
| Condicional Interna (Aninhada) | Nota média | Se o aluno tiver poucas faltas, o código entra no else e só então testa se a média é maior ou igual a 7. |
Ao trabalhar com condicionais aninhadas, preste muita atenção na **indentação** (o alinhamento do código com os espaços à esquerda). O Go ajuda muito com isso através da ferramenta padrão go fmt, mas manter os blocos bem organizados visualmente evita que você se perca fechando as chaves { } no lugar errado.
Veja abaixo como fica o código estruturado para validar a situação final do aluno considerando os dois critérios de avaliação:
package main
import "fmt"
func main() {
// Variáveis do aluno
media := 6
faltas := 5
// Condicional aninhada
if faltas > 10 {
fmt.Println("Reprovado(a) por faltas!")
} else {
// Esta estrutura só é executada se a condição acima for falsa
if media >= 7 {
fmt.Println("Aprovado(a)!")
} else {
fmt.Println("Reprovado(a) por média!")
}
}
}
Finalizamos os conteúdos desta aula sobre estruturas condicionais aninhadas. Espero que tenham compreendido como criar subcondições de forma organizada. Em caso de dúvidas, comentem nos vídeos disponíveis no YouTube.