Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Switch Основы Go

В Go присутствует единственная альтернатива if — конструкция switch. Для этой конструкции используется стандартный синтаксис, но логика работы отличается от С-подобных языков. Когда срабатывает условие какого-либо case, программа выполняет блок и выходит из конструкции switch без необходимости писать break:

x := 10

switch x {
    default: // default всегда выполняется последним независимо от расположения в конструкции
        fmt.Println("default case")
    case 10:
        fmt.Println("case 10")
}
Output:

case 10

Однако при необходимости можно реализовать логику С-подобных языков и «провалиться» в следующий case с помощью команды fallthrough. Ключевое слово fallthrough позволяет нам выполнить следующий блок case без проверки его условия.

x := 10

switch { // выражение отсутствует. Для компилятора выглядит как: switch true
    default:
        fmt.Println("default case")
    case x == 10:
        fmt.Println("equal 10 case")
        fallthrough
    case x < 10:
        fmt.Println("less 10 case")
}
Output:

equal 10 case
less or equal 10 case

В примере, выполнится условие x == 10, а затем, благодаря fallthrough сразу же выполнится и условие ниже.


Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»