`switch` bez wyrażenia
Część sekcji Podstawy ścieżki GO w Coddy. Lekcja 41 z 109.
W Go możemy użyć instrukcji switch bez wyrażenia po słowie kluczowym. Jest to przydatne, gdy chcemy w przejrzysty sposób sprawdzić wiele warunków.
Stwórzmy program, który kategoryzuje osobę na podstawie jej wieku:
age := 25
switch {
case age < 13:
fmt.Println("Child")
case age < 20:
fmt.Println("Teenager")
case age < 30:
fmt.Println("Young Adult")
default:
fmt.Println("Adult")
}Po wykonaniu tego kodu program sprawdzi kolejno każdy warunek w instrukcji case. Ponieważ nasz wiek wynosi 25, nie jest mniejszy niż 13 ani 20, ale jest mniejszy niż 30, więc pasuje trzeci przypadek. Tekst "Young Adult" pojawi się na ekranie:
Young AdultZauważ, że bez wyrażenia po switch każdy przypadek staje się warunkiem logicznym, który przyjmuje wartość true albo false. Zostanie wykonany blok kodu pierwszego przypadku, którego warunek przyjmuje wartość true.
Jeśli żaden z przypadków nie pasuje, wykona się przypadek default. W naszym przykładzie, jeśli wiek wynosiłby 35, wynikiem byłoby "Adult".
Wyzwanie
ŁatwyW tym wyzwaniu poćwiczysz używanie instrukcji switch bez wyrażenia. Ten typ instrukcji switch jest przydatny, gdy chcesz sprawdzić wiele warunków bez powtarzania instrukcji if-else.
Przygotowaliśmy zmienną timeOfDay, która reprezentuje bieżącą godzinę (w formacie 24-godzinnym). Twoim zadaniem jest uzupełnić instrukcję switch bez wyrażenia, aby wyświetlić odpowiednie powitanie w zależności od pory dnia.
Użyj tych zakresów i wyświetl dokładnie te komunikaty:
- od 5 do 11:
Good morning! - od 12 do 17:
Good afternoon! - od 18 do 21:
Good evening! - każda inna godzina:
Hello!(przypadekdefault, już zapisany)
Dla timeOfDay = 14 program wyświetli Good afternoon!.
Spróbuj swoich sił
package main
import "fmt"
func main() {
// To oznacza bieżącą godzinę w formacie 24-godzinnym (0-23)
timeOfDay := 14 // To jest 2:00 PM
// TODO: Uzupełnij instrukcję switch bez wyrażenia
// aby wypisać odpowiednie powitanie w zależności od pory dnia
switch {
// Dodaj tutaj swoje przypadki
default:
fmt.Println("Hello!")
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory porównania i logiczne
Operatory porównania – część 1Operatory porównania – część 2Logiczny operator ANDLogiczny operator ORLogiczny operator NOTPodstawy kolejności wykonywania operatorówPodsumowanie – porównywanie7Sterowanie przepływem: pętle
Jak działa pętla `for`Pętla `for` — podstawyPętla `for` — tylko warunekSłowo kluczowe `break`Słowo kluczowe `continue`Pętle zagnieżdżonePodsumowanie — powtarzanie działań2Zmienne i podstawowe typy danych
Czym jest zmiennaWnioskowanie o typie za pomocą `:=`Liczby całkowite (int)Liczby zmiennoprzecinkoweWartości logiczneCiągi znakówWartości zeroweStałeKonwencje nazewnictwaPodsumowanie – zmienne i typy5Podstawowe wejście/wyjście
Formatowane wyjścieSpecyfikatory formatuWyświetlanie typówPobieranie podstawowych danych od użytkownikaPodsumowanie — wejście i wyjście8Funkcje
Zrozumienie funkcjiDeklarowanie funkcjiWywoływanie funkcjiParametry funkcjiZwracanie jednej wartościZwracanie wielu wartościNazwane wartości zwracanePodstawy zakresu funkcjiPodsumowanie — tworzenie wielokrotnego użytku kodu11Typy złożone: wycinki
Wprowadzenie do wycinkówDeklarowanie literałów wycinkówTworzenie wycinków za pomocą `make`Długość a pojemność wycinkaDostęp do elementów wycinkaDodawanie elementówWycinanie z istniejących wycinków i tablicIterowanie po wycinkachKopiowanie wycinkówPodsumowanie — listy dynamiczne3Podstawowe operatory
Operatory arytmetyczneOperator dzieleniaOperator moduloOperator przypisaniaOperatory przypisania z działaniemZwiększanie i zmniejszaniePowtórka – obliczenia6Sterowanie przepływem: instrukcje warunkowe
Instrukcja `if`Słowo kluczowe `else`Słowo kluczowe `else if`Przesłanianie zmiennych w `if`Inicjalizacja zmiennychInstrukcja `switch``switch` z wyrażeniami`switch` bez wyrażeniaSłowo kluczowe `fallthrough`Podsumowanie — podejmowanie decyzjiPoćwicz samodzielnie: Kompilator Go online