Menu
CoddyTech

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. To inaczej niż w językach takich jak C, gdzie 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ć wiele 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 z priorytetami. Gdy zostanie wyzwolony alert o wysokim priorytecie, system powinien wyświetlić kolejno kilka komunikatów ostrzegawczych.

Otrzymasz dane wejściowe w postaci ciągu znaków reprezentującego 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ć następująco:

  • Dla "critical": wypisz "CRITICAL: System shutdown imminent!" i przejdź do przypadku high (który z kolei przechodzi do medium)
  • Dla "high": wypisz "HIGH: Immediate attention required!" i przejdź dalej, aby wypisać również komunikat o średnim priorytecie
  • Dla "medium": wypisz "MEDIUM: Please review when possible"
  • Dla "low": wypisz "LOW: Informational only"

Ponieważ fallthrough tworzy łańcuch, alert "critical" wypisuje trzy wiersze (CRITICAL, HIGH, MEDIUM), alert "high" wypisuje dwa (HIGH, MEDIUM), a "medium" i "low" wypisują po jednym wierszu.

Spróbuj swoich sił

package main

import "fmt"

func main() {
    // Wczytaj dane wejściowe
    var alertLevel string
    fmt.Scanln(&alertLevel)
    
    // TODO: Napisz swój kod poniżej
    // Utwórz instrukcję switch z fallthrough dla systemu alarmowego
    
}
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