Switch без выражений
Часть раздела Основы путешествия по GO на Coddy — урок 41 из 109.
В Go мы можем использовать оператор switch без выражения после ключевого слова. Это полезно, когда мы хотим оценить несколько условий понятным способом.
Давайте создадим программу, которая классифицирует человека в зависимости от его возраста:
age := 25
switch {
case age < 13:
fmt.Println("Child")
case age < 20:
fmt.Println("Teenager")
case age < 30:
fmt.Println("Young Adult")
default:
fmt.Println("Adult")
}После выполнения этого кода программа по порядку проверит каждое условие case. Так как наш возраст равен 25, он не меньше 13 или 20, но меньше 30, поэтому срабатывает третье условие. На экране появится текст "Young Adult":
Young AdultОбратите внимание, что без выражения после switch, каждый case становится логическим условием, которое вычисляется либо как true, либо как false. Первый case, который вычислится как true, выполнит свой блок кода.
Если ни один из вариантов не совпадает, выполнится блок default. В нашем примере, если age равен 35, результатом будет "Adult".
Задание
ЛегкоВ этом испытании вы попрактикуетесь в использовании оператора switch без выражения. Этот тип switch полезен, когда вы хотите оценить несколько условий, не повторяя операторы if-else.
Мы предоставили переменную timeOfDay, которая представляет текущий час (в 24-часовом формате). Ваша задача — дополнить оператор switch без выражения, чтобы вывести соответствующее приветствие в зависимости от времени суток.
Шпаргалка
Оператор switch без выражения позволяет элегантно проверять несколько условий:
age := 25
switch {
case age < 13:
fmt.Println("Child")
case age < 20:
fmt.Println("Teenager")
case age < 30:
fmt.Println("Young Adult")
default:
fmt.Println("Adult")
}Каждый блок case становится логическим условием, которое принимает значение true или false. Выполняется блок кода первого условия, которое окажется истинным (true). Если ни одно условие не подошло, выполняется блок default.
Попробуйте сами
package main
import "fmt"
func main() {
// Это представляет текущий час в 24-часовом формате (0-23)
timeOfDay := 14 // Это 14:00
// TODO: Завершите оператор switch без выражения,
// чтобы вывести соответствующее приветствие в зависимости от времени суток
switch {
// Добавьте ваши варианты здесь
default:
fmt.Println("Hello!")
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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`Итоги — Принятие решений