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

Несколько значений в case в Go

Сейчас мы изучим, как объединить несколько значений в одной ветке switch. В case их перечисляют через запятую. Если значение совпало с любым из списка, выполняется один и тот же блок команд для всех этих значений.

В Go следующая ветка сама не запускается. Отдельный break для этого не нужен. Команду fallthrough пишут отдельно, только когда провал в следующую ветку нужен специально. Запись значений через запятую такого провала не делает.

Пусть переменная num равна 1. Для значений 1 и 2 печатаем одно слово, для 3 - другое:

num := 1 switch num { case 1, 2: fmt.Println("a") // сработает это case 3: fmt.Println("b") }

Поменяем значение переменной на 3. Сработает другая ветка, а первая группа значений останется в стороне:

num := 3 switch num { case 1, 2: fmt.Println("a") case 3: fmt.Println("b") // сработает это }

Тот же прием подходит и для рун. Пусть символ входит в группу:

ch := 'a' switch ch { case 'a', 'e', 'i': fmt.Println("vowel") // сработает это default: fmt.Println("cons") }

Строки сравнивают так же, как знаком ==. Несколько строк можно перечислить в одной и той же ветке:

lang := "de" switch lang { case "ru", "by": fmt.Println("east") case "en", "de": fmt.Println("west") // сработает это default: fmt.Println("other") }

Дано число:

code := 404

Для 404 и 500 выведите "err", для остальных значений выведите "fine".

Дана переменная:

mark := 'x'

Для mark равного 'x', 'y' или 'z' выведите "tail", иначе выведите "head".

Дано число:

slot := 0

Сопоставьте 1, 2 и 3 с одним словом и выведите "other" для текущего значения slot.

Дано число:

day := 6

Для чисел 1, 2 и 3 выведите "start", для 4, 5 и 6 - "middle", для 7 - "end", иначе выведите "unknown".

Дана переменная:

num := 1

Если num равно 1 или 2, выведите "a". Если оно равно 3, выведите "b".

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