РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
3 of 1593 menu

Условный оператор switch

Условный оператор switch в Go используется для множественного ветвления кода. Он сравнивает значение выражения с набором значений в блоках case и выполняет первый подходящий блок. В отличие от многих других языков, в Go блоки case не проваливаются автоматически - после выполнения блока выполнение выходит из switch. Первым параметром в switch передается выражение для сравнения, в блоках case указываются значения для сравнения. Также оператор может использоваться без выражения, тогда он проверяет условия в case как логические выражения.

Синтаксис

switch expression { case value1: // code case value2: // code default: // code }

Блок default выполняется, если ни один из case не совпал. Этот блок необязателен.

Пример

Давайте проверим день недели по его номеру:

package main import "fmt" func main() { day := 3 switch day { case 1: fmt.Println("Monday") case 2: fmt.Println("Tuesday") case 3: fmt.Println("Wednesday") case 4: fmt.Println("Thursday") case 5: fmt.Println("Friday") default: fmt.Println("Weekend") } }

Результат выполнения кода:

"Wednesday"

В этом примере переменная day содержит число 3, поэтому выполняется блок с case 3.

Пример

Оператор switch может использоваться с несколькими значениями в одном case через запятую:

package main import "fmt" func main() { letter := "b" switch letter { case "a", "e", "i", "o", "u": fmt.Println("Vowel") default: fmt.Println("Consonant") } }

Результат выполнения кода:

"Consonant"

В этом примере проверяется, является ли буква гласной. Буква b не входит в список гласных, поэтому выполняется блок default.

Пример

Оператор switch без выражения работает как цепочка условий if-else:

package main import "fmt" func main() { num := 42 switch { case num < 0: fmt.Println("Negative") case num == 0: fmt.Println("Zero") case num > 0: fmt.Println("Positive") } }

Результат выполнения кода:

"Positive"

Такой синтаксис удобен, когда нужно проверить различные условия без указания конкретного выражения для сравнения.

Пример

В switch можно инициализировать переменную в самом операторе:

package main import "fmt" func main() { switch num := 10; { case num%2 == 0: fmt.Println("Even") default: fmt.Println("Odd") } }

Результат выполнения кода:

"Even"

Переменная num объявлена и инициализирована прямо в операторе switch и доступна только внутри него.

Смотрите также

  • оператор if,
    который выполняет условное ветвление
  • оператор else,
    который задает альтернативную ветку для if
  • оператор fallthrough,
    который позволяет проваливаться в следующий case
  • оператор goto,
    который выполняет безусловный переход к метке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить