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

Оператор fallthrough

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

Синтаксис

fallthrough

Оператор ставится внутри блока случая и должен быть последним оператором в этом блоке.

Пример с одним fallthrough

Давайте рассмотрим базовый пример использования fallthrough в конструкции switch:

package main import "fmt" func main() { num := 2 switch num { case 1: fmt.Println("one") case 2: fmt.Println("two") fallthrough case 3: fmt.Println("three") } }

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

"two" "three"

Как видите, после выполнения случая 2 управление перешло к следующему случаю 3 из-за оператора fallthrough.

Пример без fallthrough

Если не использовать fallthrough, то после выполнения случая выполнение конструкции switch завершается:

package main import "fmt" func main() { num := 2 switch num { case 1: fmt.Println("one") case 2: fmt.Println("two") case 3: fmt.Println("three") } }

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

"two"

Пример с несколькими fallthrough

Оператор fallthrough можно использовать несколько раз подряд, чтобы пройти через несколько случаев:

package main import "fmt" func main() { num := 1 switch num { case 1: fmt.Println("one") fallthrough case 2: fmt.Println("two") fallthrough case 3: fmt.Println("three") } }

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

"one" "two" "three"

Ограничения fallthrough

Оператор fallthrough нельзя использовать в последнем случае switch, так как после него нет следующего случая. Также fallthrough не работает в случае, если он не является последним оператором в блоке:

package main import "fmt" func main() { num := 2 switch num { case 1: fmt.Println("one") case 2: fmt.Println("two") fallthrough // Этот код после fallthrough не выполнится fmt.Println("after fallthrough") case 3: fmt.Println("three") } }

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

"two" "three"

Пример с fallthrough в switch с условиями

Рассмотрим пример использования fallthrough в switch с условиями сравнения:

package main import "fmt" func main() { value := 10 switch { case value < 5: fmt.Println("less than 5") case value < 10: fmt.Println("less than 10") case value < 20: fmt.Println("less than 20") fallthrough case value < 30: fmt.Println("less than 30") } }

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

"less than 20" "less than 30"

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

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