Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpFtNx 66 of 280 menu
◀ ▶

Провал в следующую ветку в Go

Команда в конце ветки передает ход в соседнюю без новой проверки. Условие следующей ветки при этом не сравнивают с текущим значением: тело этой ветки выполняется так, будто совпадение уже нашли именно там.

Поставим число 1 и после первой печати перейдем во вторую ветку:

n := 1 switch n { case 1: fmt.Println("one") fallthrough case 2: fmt.Println("two") case 3: fmt.Println("three") }

На экране "one" и "two". Второе совпало бы и без провала, но здесь важно другое: вторая ветка сработала даже при другом числе, если перед ней стоит переход из первой.

Такая команда должна быть последней в ветке. Любая строка после нее делает программу несобираемой:

n := 2 switch n { case 1: fmt.Println("a") case 2: fmt.Println("b") fallthrough fmt.Println("late") case 3: fmt.Println("c") }

Дано число:

n := 1

Выведите "first" для 1, затем перейди в следующую ветку и выведите "second" для 2.

Дан следующий код:

n := 1 switch n { case 1: fmt.Println("x") case 2: fmt.Println("y") }

Добавьте переход из первой ветки во вторую и скажите, что напечатается.

Дан следующий код:

switch 1 { case 1: fallthrough fmt.Println("bad") }

Скажите, соберется ли программа.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить