Menu
Coddy logo textTech

Instrukcja switch z `fallthrough`

Część sekcji Logika i przepływ sterowania ścieżki GO w Coddy. Lekcja 1 z 68.

W Go instrukcje switch zwykle wykonują tylko pasujący przypadek, a następnie automatycznie kończą działanie. Jednak słowo kluczowe fallthrough zmienia to zachowanie, wymuszając kontynuowanie wykonywania w następnym przypadku, niezależnie od tego, czy pasuje.

Gdy użyjesz fallthrough na końcu przypadku, Go wykona kod następnego przypadku bez sprawdzania jego warunku. Różni się to od języków takich jak C, w których musisz użyć break, aby zapobiec przejściu do kolejnego przypadku.

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

W tym przykładzie, jeśli grade ma wartość "B", zostaną wyświetlone zarówno "Good job!", jak i "Keep trying!" z powodu instrukcji fallthrough. Dzięki temu możesz wykonać kilka powiązanych działań dla jednego pasującego przypadku.

challenge icon

Wyzwanie

Łatwy

W tym wyzwaniu poćwiczysz używanie słowa kluczowego fallthrough w instrukcji switch, aby utworzyć system alertów priorytetowych. Gdy zostanie wywołany alert o wysokim priorytecie, system powinien wyświetlić kolejno kilka komunikatów ostrzegawczych.

Otrzymasz ciąg znaków reprezentujący poziom alertu. Utwórz instrukcję switch, która obsługuje różne poziomy alertów i używa fallthrough, aby wyświetlać kaskadowe komunikaty dla alertów o wyższym priorytecie.

Dane wejściowe będą jednym z tych poziomów alertu: "critical", "high", "medium" lub "low".

Instrukcja switch powinna działać w następujący sposób:

  • Dla "critical": Wyświetl "CRITICAL: System shutdown imminent!" i przejdź dalej, aby wyświetlić również komunikat o wysokim priorytecie
  • Dla "high": Wyświetl "HIGH: Immediate attention required!" i przejdź dalej, aby wyświetlić również komunikat o średnim priorytecie
  • Dla "medium": Wyświetl "MEDIUM: Please review when possible"
  • Dla "low": Wyświetl "LOW: Informational only"

Użyj słowa kluczowego fallthrough, aby alerty krytyczne wyświetlały zarówno komunikaty o krytycznym, jak i wysokim priorytecie, a alerty o wysokim priorytecie wyświetlały zarówno komunikaty o wysokim, jak i średnim priorytecie.

Spróbuj swoich sił

package main

import "fmt"

func main() {
    // Odczytaj dane wejściowe
    var alertLevel string
    fmt.Scanln(&alertLevel)
    
    // TODO: Napisz swój kod poniżej
    // Utwórz instrukcję switch z fallthrough dla systemu alertów
    
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Go online