Menu
Coddy logo textTech

Switch com `fallthrough`

Parte da seção Lógica & Fluxo do Journey de GO da Coddy — lição 1 de 68.

Em Go, as instruções switch normalmente executam apenas o caso correspondente e, em seguida, saem automaticamente. No entanto, a palavra-chave fallthrough altera esse comportamento, forçando a execução a continuar para o próximo caso, independentemente de ele corresponder ou não.

Quando você usa fallthrough ao final de um case, o Go executará o código do próximo case sem verificar sua condição. Isso é diferente de linguagens como C, onde você precisa de break para evitar o fallthrough.

grade := "B"
switch grade {
case "A":
    fmt.Println("Excellent!")
    fallthrough
case "B":
    fmt.Println("Good job!")
    fallthrough
case "C":
    fmt.Println("Keep trying!")
}

Neste exemplo, se grade for "B", ele imprimirá tanto "Good job!" quanto "Keep trying!" devido à instrução fallthrough. Isso permite que você execute múltiplas ações relacionadas para um único caso correspondente.

challenge icon

Desafio

Fácil

Neste desafio, você praticará o uso da palavra-chave fallthrough em uma instrução switch para criar um sistema de alerta de prioridade. Quando um alerta de alta prioridade é acionado, o sistema deve exibir várias mensagens de aviso em sequência.

Você receberá uma entrada de string representando um nível de alerta. Crie uma instrução switch que lide com diferentes níveis de alerta e use fallthrough para exibir mensagens em cascata para alertas de maior prioridade.

A entrada será um destes níveis de alerta: "critical", "high", "medium" ou "low".

Sua instrução switch deve funcionar da seguinte forma:

  • Para "critical": Imprima "CRITICAL: System shutdown imminent!" e use fallthrough para imprimir a mensagem de alta prioridade também
  • Para "high": Imprima "HIGH: Immediate attention required!" e use fallthrough para imprimir a mensagem de prioridade média também
  • Para "medium": Imprima "MEDIUM: Please review when possible"
  • Para "low": Imprima "LOW: Informational only"

Use a palavra-chave fallthrough para que os alertas críticos exibam as mensagens de prioridade crítica e alta, e os alertas de alta prioridade exibam as mensagens de prioridade alta e média.

Experimente você mesmo

package main

import "fmt"

func main() {
    // Ler entrada
    var alertLevel string
    fmt.Scanln(&alertLevel)
    
    // TODO: Escreva seu código abaixo
    // Crie uma instrução switch com fallthrough para o sistema de alerta
    
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo