Switch с диапазонами
Часть раздела Основы путешествия по Swift на Coddy — урок 30 из 86.
Операторы switch становятся еще более мощными, когда вы используете диапазоны вместо отдельных значений. Это идеально подходит для распределения чисел по группам, например, для преобразования баллов в оценку.
let score = 85
switch score {
case 90...100:
print("A")
case 80..<90:
print("B")
case 70..<80:
print("C")
case 60..<70:
print("D")
default:
print("F")
}Оператор ... создает закрытый диапазон, который включает обе конечные точки, поэтому 90...100 соответствует значениям от 90, 91 и до 100 включительно. Оператор ..< создает полуоткрытый диапазон, который исключает верхнюю границу — 80..<90 соответствует значениям от 80 до 89.
Swift проверяет каждый вариант по порядку и выполняет первый совпавший. Так как наш score равен 85, он попадает в диапазон 80..<90, поэтому выводится "B". Этот подход гораздо чище, чем написание множества условий else if с операторами сравнения.
Задание
ЛегкоНапишите функцию getAgeCategory, которая принимает age и возвращает категорию этапа жизни на основе возрастных диапазонов.
Используйте оператор switch с диапазонами, чтобы классифицировать возраст по одному из пяти этапов жизни.
Условия:
0...2- верните"Infant"3...12- верните"Child"13...19- верните"Teenager"20...64- верните"Adult"65...120- верните"Senior"- Любое другое значение - верните
"Invalid age"
Параметры:
age(Int): Возраст человека
Возвращает: Категорию этапа жизни в виде String
Шпаргалка
Операторы Switch могут использовать диапазоны для сопоставления значений в определенном интервале:
let score = 85
switch score {
case 90...100:
print("A")
case 80..<90:
print("B")
case 70..<80:
print("C")
default:
print("F")
}Оператор ... создает закрытый диапазон, который включает обе конечные точки (например, 90...100 соответствует значениям от 90 до 100).
Оператор ..< создает полуоткрытый диапазон, который исключает верхнюю границу (например, 80..<90 соответствует значениям от 80 до 89).
Swift проверяет каждое условие по порядку и выполняет первое совпавшее.
Попробуйте сами
func getAgeCategory(age: Int) -> 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Повторение: ФакториалДиапазоны в циклахВложенные циклыПовторение: Динамический ввод