🧩 Exercícios: Estruturas Condicionais: if com Declaração Prévia e switch
Spec Sistemas Com Go • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 03.1 — Condicional if com Declaração Prévia (if err := …; err != nil)
Contexto: Condicional if com Declaração Prévia (if err := …; err != nil) no contexto de Estruturas Condicionais: if com Declaração Prévia e switch.
Requisitos de Execução:
- Executar instrução e testar condição limitando o escopo da variável ao bloco if.
Resultado Esperado
Variável temporária isolada estritamente dentro do bloco condicional.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_03_1_SeuNome - Envie na tarefa:
Atividade Cap 03 - Estruturas Condicionais: if com Declaração Prévia e switch
🔑 Gabarito de Código & Solução Comentada
package main
import (
"errors"
"fmt"
)
func validar() error { return errors.New("campo_obrigatorio") }
func main() {
if err := validar(); err != nil {
fmt.Printf("Erro capturado no escopo do if: %v\n", err)
}
}
🔍 Nível 2: Prática
Problema 03.2 — Switch sem Expressão (Substituto Idiomático de if-else chains)
Contexto: Switch sem Expressão (Substituto Idiomático de if-else chains) no contexto de Estruturas Condicionais: if com Declaração Prévia e switch.
Requisitos de Execução:
- Escrever
switchlimpo sem valor de controle testando múltiplos predicados booleanos.
Resultado Esperado
Lógica condicional organizada em switch idiomático do Go.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_03_2_SeuNome - Envie na tarefa:
Atividade Cap 03 - Estruturas Condicionais: if com Declaração Prévia e switch
🔑 Gabarito de Código & Solução Comentada
package main
import "fmt"
func main() {
idade := 25
switch {
case idade < 18:
fmt.Println("Menor de idade")
case idade < 65:
fmt.Println("Adulto")
default:
fmt.Println("Idoso")
}
}
⚡ Nível 3: Integração
Problema 03.3 — Type Switch para Inspeção de Tipos Dinâmicos (any)
Contexto: Type Switch para Inspeção de Tipos Dinâmicos (any) no contexto de Estruturas Condicionais: if com Declaração Prévia e switch.
Requisitos de Execução:
- Inspecionar tipo real de uma interface vazia
switch v := x.(type).
Resultado Esperado
Tipo dinâmico identificado e desempacotado em tempo de execução.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_03_3_SeuNome - Envie na tarefa:
Atividade Cap 03 - Estruturas Condicionais: if com Declaração Prévia e switch
🔑 Gabarito de Código & Solução Comentada
package main
import "fmt"
func inspecionarTipo(i any) {
switch v := i.(type) {
case int:
fmt.Printf("Inteiro: %d\n", v*2)
case string:
fmt.Printf("Texto com %d caracteres\n", len(v))
default:
fmt.Printf("Tipo desconhecido: %T\n", v)
}
}
func main() {
inspecionarTipo(42)
inspecionarTipo("GoLang")
}
🏆 Nível 4: Desafio Corporativo
Problema 03.4 — Fallthrough Explícito no switch
Contexto: Fallthrough Explícito no switch no contexto de Estruturas Condicionais: if com Declaração Prévia e switch.
Requisitos de Execução:
- Utilizar palavra-chave
fallthroughintencionalmente para execução em cascata de regras de auditoria.
Resultado Esperado
Execução em cascata controlada via fallthrough explícito.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_03_4_SeuNome - Envie na tarefa:
Atividade Cap 03 - Estruturas Condicionais: if com Declaração Prévia e switch
🔑 Gabarito de Código & Solução Comentada
package main
import "fmt"
func main() {
nivel := 2
switch nivel {
case 2:
fmt.Println("Nivel 2 ativado")
fallthrough
case 1:
fmt.Println("Nivel 1 ativado (cascata)")
}
}
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |