Ключевое слово `fallthrough`
Часть раздела Основы путешествия по GO на Coddy — урок 42 из 109.
В Go ключевое слово fallthrough позволяет нам продолжить выполнение следующего кейса в операторе switch, даже после того, как совпадение было найдено. Давайте изучим, как это работает.
Сначала давайте создадим простой оператор switch, который использует ключевое слово fallthrough для описания числа:
num := 15
switch {
case num < 20:
fmt.Print("Less than 20 ")
fallthrough
case num > 10:
fmt.Print("Greater than 10 ")
fallthrough
case num > 0:
fmt.Print("Positive number")
}После выполнения этого кода мы увидим все три сообщения, выведенные на экран:
Less than 20 Greater than 10 Positive numberЭто происходит потому, что первый вариант совпадает (15 меньше, чем 20), и ключевое слово fallthrough заставляет Go также выполнить второй вариант. Затем второй вариант также использует fallthrough, что заставляет Go выполнить и третий вариант. Без fallthrough выполнился бы только первый подходящий вариант.
Помните, что fallthrough выполнит следующий блок case независимо от того, истинно его условие или нет. В нашем примере все условия оказываются истинными для числа 15, но следующий блок case выполнился бы, даже если бы его условие было ложным.
Задание
НовичокВ этом испытании вы попрактикуетесь в использовании ключевого слова fallthrough в операторе switch. Ключевое слово fallthrough позволяет продолжить выполнение следующего блока case даже после того, как совпадение было найдено.
У вас есть переменная, представляющая день недели. Ваша задача — добавить ключевое слово fallthrough в подходящее место, чтобы программа вывела и 'It's a weekday!', и 'Time to work!', когда значением переменной является 'Monday'.
Попробуйте сами
package main
import "fmt"
func main() {
// Переменная, представляющая день недели
day := "Monday"
// Оператор switch для проверки дня
switch day {
case "Monday":
fmt.Println("It's a weekday!")
// TODO: Добавьте ключевое слово `fallthrough` здесь, чтобы перейти к следующему case
case "Tuesday", "Wednesday", "Thursday", "Friday":
fmt.Println("Time to work!")
case "Saturday", "Sunday":
fmt.Println("It's the weekend!")
default:
fmt.Println("Invalid day!")
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравнения — Часть 1Операторы сравнения — Часть 2Логический оператор ANDЛогический оператор ORЛогический оператор NOTОсновы приоритета операторовИтоги: выполнение сравнений7Управляющие конструкции: Циклы
Что такое цикл `for`Цикл `for` — основыЦикл `for` — только условиеКлючевое слово `break`Ключевое слово `continue`Вложенные циклыИтоги — повторение действий2Переменные и базовые типы данных
Что такое переменнаяВывод типов с помощью `:=`Целые числа (int)Числа с плавающей точкойЛогический тип (Booleans)СтрокиНулевые значения (Zero Values)КонстантыПравила именованияИтоги: переменные и типы5Основы ввода-вывода
Форматированный выводСпецификаторы форматаВывод типовБазовый ввод данных пользователемИтоги: ввод и вывод8Функции
Понимание функцийОбъявление функцииВызов функцийПараметры функцииВозврат одного значенияВозврат нескольких значенийИменованные возвращаемые значенияОсновы области видимости функцийИтоги — создание переиспользуемого кода3Базовые операторы
Арифметические операторыОператор деленияОператор остатка от деленияОператор присваиванияКомбинированные операторы присваиванияИнкремент и декрементПовторение — Вычисления6Управление потоком: Условные конструкции
Оператор `if`Ключевое слово `else`Ключевое слово `else if`Затенение переменных в `if`Инициализация переменныхОператор `switch`Switch с выражениямиSwitch без выраженийКлючевое слово `fallthrough`Итоги — Принятие решений