Оператор Switch
Часть раздела Основы путешествия по Swift на Coddy — урок 29 из 86.
Когда вы проверяете одно значение на соответствие множеству возможных вариантов, оператор switch предлагает более чистую альтернативу длинным цепочкам else if. Он особенно полезен, когда вам нужно обработать несколько различных случаев.
let day = "Monday"
switch day {
case "Monday":
print("Start of the week")
case "Friday":
print("Almost weekend!")
case "Saturday", "Sunday":
print("Weekend!")
default:
print("Regular day")
}Swift сравнивает значение после switch с каждым case. Когда находится совпадение, выполняется код этого варианта. Обратите внимание, как можно объединить несколько значений в одном case, используя запятые.
Кейс default обрабатывает любые значения, которые не соответствуют другим кейсам — он обязателен, когда ваши кейсы не охватывают все возможные значения. В отличие от некоторых других языков, switch в Swift не переходит автоматически к следующему кейсу, поэтому вам не нужны инструкции break.
let grade = "B"
switch grade {
case "A":
print("Excellent")
case "B":
print("Good")
case "C":
print("Fair")
default:
print("Needs improvement")
}Задание
ЛегкоНапишите функцию getSeasonActivity, которая принимает season и возвращает рекомендованное занятие для этого сезона.
Используйте оператор switch для сопоставления сезона и возврата соответствующего занятия.
Варианты (Cases):
"Spring"- вернуть"Go hiking""Summer"- вернуть"Go swimming""Fall","Autumn"- вернуть"Go apple picking"(оба варианта должны возвращать одно и то же занятие)"Winter"- вернуть"Go skiing"- Любое другое значение - вернуть
"Stay home"
Параметры:
season(String): Название сезона
Возвращает: Рекомендованное занятие в виде String
Шпаргалка
Оператор switch представляет собой более чистую альтернативу множественным операторам else if при проверке одного значения на соответствие множеству возможных вариантов.
Базовый синтаксис:
let day = "Monday"
switch day {
case "Monday":
print("Start of the week")
case "Friday":
print("Almost weekend!")
case "Saturday", "Sunday":
print("Weekend!")
default:
print("Regular day")
}Ключевые моменты:
- Swift сравнивает значение после
switchс каждымcase - Несколько значений можно объединить в одном кейсе через запятую
- Кейс
defaultобрабатывает значения, которые не совпали с другими вариантами, и обязателен, если кейсы не охватывают все возможные значения - В Swift оператор switch не переходит к следующему кейсу автоматически, поэтому операторы
breakне требуются
Пример со значениями:
let grade = "B"
switch grade {
case "A":
print("Excellent")
case "B":
print("Good")
case "C":
print("Fair")
default:
print("Needs improvement")
}Попробуйте сами
func getSeasonActivity(season: String) -> String {
// Напишите код здесь
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеПовторение: Простая математикаОператоры сравнения7Основы ввода-вывода
Функция PrintИнтерполяция строкВвод через ReadLineПреобразование типовПовторение — до 120Повторение — True или False10Функции
Объявление функцииПараметры и аргументыВозвращаемые значенияМетки аргументовПовторение: функция SigmaПовторение: функция валидацииЗначения по умолчанию13Итерирование по последовательностям
Итерирование по элементамМетод enumerateИтерирование по строкам, ч. 1Итерирование по строкам, ч. 22Переменные
Let против VarАннотации типовЧислаСтрокиBooleanСоглашения об именованииИтоги — Инициализация переменных5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение: простая логикаЛогические операторы. Часть 3Тернарный оператор8Калькулятор разделения счета
Приветственное сообщениеПолучение ввода14Массивы: Продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опционалы
Что такое опционалыРазвертывание с помощью if letGuard letОператор объединения с nilИтоги — безопасное развертывание6Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторОператор SwitchSwitch с диапазонами9Циклы
Цикл For-InЦикл WhileЦикл Repeat-WhileBreakContinueПовторение: ФакториалДиапазоны в циклахВложенные циклыПовторение: Динамический ввод