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.
Wyzwanie
ŁatwyW 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
}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
1Zaawansowane sterowanie przepływem
Instrukcja switch z `fallthrough`Przerywanie zagnieżdżonych pętliKontynuowanie określonej pętliInstrukcja `goto`Podsumowanie — zaawansowane sterowanie pętlami4Projekt: Prosta lista zadań
Konfiguracja projektuDodawanie zadania2Struktury i metody
Definiowanie metod dla strukturOdbiorniki przez wartośćOdbiorniki przez wskaźnikWybór odbiornikówMetody a funkcjePodsumowanie — działanie struktur5Mapy w szczegółach
Mapy strukturWskaźniki jako wartości mapSprawdzanie, czy mapy są nilPorównywanie mapPodsumowanie — licznik częstości słów3Interfejsy (podstawy)
Czym jest interfejs?Definiowanie interfejsuImplementowanie interfejsuUżywanie typów interfejsowychPusty interfejsAsercje typuPrzełącznik typówPodsumowanie – kształty i zachowaniaPoćwicz samodzielnie: Kompilator Go online