Switch без выражений
Часть раздела Основы путешествия по GO на Coddy. Урок 41 из 109.
В Go мы можем использовать switch statement without an expression после ключевого слова. Это полезно, когда мы хотим аккуратно проверить несколько условий.
Создадим программу, которая классифицирует человека на основе его возраста:
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 по порядку. Поскольку наше age равно 25, оно не меньше 13 или 20, но меньше 30, поэтому подходит третий case. Текст "Young Adult" появится на экране:
Young AdultОбратите внимание, что без expression после switch каждый case становится логическим условием, результатом которого будет true или false. Первый case, результатом которого будет true, выполнит свой блок кода.
Если ни один из вариантов не совпадёт, выполнится вариант default. В нашем примере, если бы age было равно 35, результатом было бы «Adult».
Задание
ЛегкоВ этом задании вы попрактикуетесь в использовании оператора switch without выражения. Такой тип switch полезен, когда нужно проверить несколько условий, не повторяя операторы if-else.
Мы предоставили переменную timeOfDay, которая представляет current hour (в 24-часовом формате). Ваша задача — дополнить оператор switch without expression, чтобы вывести appropriate приветствие based на времени суток.
Используйте эти диапазоны и выведите print ровно такие сообщения:
- 5–11:
Good morning! - 12–17:
Good afternoon! - 18–21:
Good evening! - любой другой hour:
Hello!(случайdefault, уже написанный)
При timeOfDay = 14 программа выводит Good afternoon!.
Попробуйте сами
package main
import "fmt"
func main() {
// Это представляет текущий час в 24-часовом формате (0-23)
timeOfDay := 14 // Это 2:00 PM
// TODO: Завершите оператор switch без выражения
// чтобы вывести соответствующее приветствие в зависимости от времени суток
switch {
// Добавьте свои cases здесь
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`Итоги — Принятие решенийПотренируйтесь самостоятельно: Онлайн-компилятор Go