Menu
Coddy logo textTech

`switch` z wyrażeniami

Część sekcji Podstawy ścieżki GO w Coddy. Lekcja 40 z 109.

Dowiedzmy się więcej o wyrażeniach switch w Go, które pozwalają nam bezpośrednio obliczyć wartość w instrukcji switch.

Najpierw zobaczmy, jak użyć instrukcji switch z wyrażeniem, aby sprawdzić, czy liczba jest dodatnia, ujemna czy równa zero:

num := -5
switch {
case num > 0:
    fmt.Println("Positive number")
case num < 0:
    fmt.Println("Negative number")
default:
    fmt.Println("Zero")
}

Po wykonaniu tego kodu program wyświetli na ekranie:

Negative number

Zauważ, że używamy switch { bez żadnej wartości po nim. Oznacza to, że Go będzie oceniać każde wyrażenie w klauzuli case jako warunek logiczny. Ponieważ num wynosi -5, drugi warunek num < 0 ma wartość true, więc zostanie wypisany tekst „Negative number”.

Możemy też zainicjalizować zmienną bezpośrednio w instrukcji switch. Zobaczmy, jak to działa:

switch num := -5; {
case num > 0:
    fmt.Println("Positive number")
case num < 0:
    fmt.Println("Negative number")
default:
    fmt.Println("Zero")
}

Po wykonaniu tego kodu otrzymujemy ten sam wynik:

Negative number

W tym przykładzie zadeklarowaliśmy i zainicjalizowaliśmy num bezpośrednio w instrukcji switch. Średnik oddziela inicjalizację od wyrażenia switch (które jest tutaj puste). Dzięki temu nasz kod jest bardziej zwięzły, a jego funkcjonalność pozostaje taka sama.

challenge icon

Wyzwanie

Początkujący
W tym wyzwaniu przećwiczysz używanie prostego wyrażenia switch w Go. Musisz uzupełnić kod, aby określić opis dnia na podstawie jego nazwy za pomocą instrukcji switch.

Zmienna dayName jest już zdefiniowana i ma wartość "Wednesday". Twoim zadaniem jest użyć wyrażenia switch, aby ustawić zmienną description na:
- "Start of the week" dla poniedziałku
- "Midweek" dla środy
- "Almost weekend" dla piątku
- "Weekend" dla soboty lub niedzieli
- "Regular day" dla każdego innego dnia

Spróbuj swoich sił

package main

import "fmt"

func main() {
	// Nazwa dnia jest już zdefiniowana
	dayName := "Wednesday"
	
	// Zmienna do przechowywania opisu
	var description string
	
	// TODO: Napisz instrukcję switch, która ustawia opis na podstawie dayName
	// Dla poniedziałku: "Start of the week"
	// Dla środy: "Midweek"
	// Dla piątku: "Almost weekend"
	// Dla soboty lub niedzieli: "Weekend"
	// Dla każdego innego dnia: "Regular day"
	
	
	// Wyświetl wynik
	fmt.Printf("%s is %s\n", dayName, description)
}
quiz iconSprawdź się

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

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Go online