Базовый синтаксис
Синтаксис оператора ветвления switch
похож на синтаксис оператора ветвления if
, так как оба имеют условные проверки. Базовый синтаксис выглядит следующим образом:
switch condition {
case val1:
// code block
case val2:
// code block
...
default:
// code block
}
Условие может быть выражением любого типа. Когда условие совпадает со значением определенного оператора case
, будет выполнен соответствующий оператор case
, а затем программа выйдет из текущего оператора ветвления switch
.
Значения в операторах case
должны быть того же типа, что и выражение условия.
Программа будет оценивать операторы case
сверху вниз и выполнять первый совпадающий оператор case
. После завершения выполнения она выйдет из текущего оператора ветвления switch
.
Оператор default
похож на оператор else
. Когда ни один из других операторов case
не совпадает с условием, будет выполнен оператор default
.
Давайте рассмотрим пример прогноза погоды. Создайте новый файл с именем switch.go
и напишите следующий код:
cd ~/project
touch switch.go
package main
import (
"fmt"
)
func main() {
// Today's weather
weather := "rainy"
switch weather {
case "snow":
fmt.Println("Remember to wear a scarf today.🧣")
case "rainy":
fmt.Println("Remember to bring an umbrella today.🌂")
default:
fmt.Println("Today is sunny.☀")
}
}
Запустите код:
go run switch.go
Вывод будет следующим:
Remember to bring an umbrella today.🌂
Этот прогноз погоды будет выводить разные результаты в зависимости от погодных условий. Сначала мы установили сегодняшнюю погоду как "дождливая". В операторе ветвления switch-case
ниже мы установили три разных условия. Когда идет снег, мы напоминаем вам надеть шарф, когда идет дождь, мы напоминаем вам взять зонтик, а в противном случае мы считаем, что сегодня солнечно.