Диапазоны в Switch
Часть раздела Логика и управление потоком путешествия по Swift на Coddy. Урок 10 из 56.
В разделе по основам вы использовали switch с диапазонами. Этот же приём подходит для реальных задач классификации, где каждый случай охватывает диапазон значений.
let temp = 22
switch temp {
case ..<0: print("freezing")
case 0..<10: print("cold")
case 10..<20: print("mild")
case 20..<30: print("warm")
default: print("hot")
// теплоПервый case ..<0 использует форму one-sided диапазона: «любое значение, строго меньшее 0». Вы также можете использовать 0..., чтобы обозначить «0 или больше».
Варианты проверяются сверху вниз, и срабатывает первое совпадение, поэтому располагай их от меньшего к большему (или используй default для общего случая).
Задание
НовичокСчитай из ввода одно целое число: температуру в градусах Цельсия. Выведи одну из этих меток, используя один switch с диапазонами в ветвях:
- Меньше
0(отрицательные значения):freezing 0...9:cold10...19:mild20...29:warm30...39:hot40и выше:scorching
Для ввода 22 результатом будет warm.
Попробуйте сами
let temp = Int(readLine()!)!
// TODO: switch по temp с использованием диапазонов, выведи соответствующую метку
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Строки в деталях
Подсчет и индексыРегистр и удаление пробеловПоиск в строкахРазделение и объединениеЗамена подстрокИтоги — Проверка имени пользователя4Множества
Создание множествОбъединение и пересечениеРазность и симметрическая разностьПодмножество и надмножествоИтоги — Фильтр тегов7Проект — Трекер привычек
Обзор проектаОтметить выполнение10Проект — Движок викторины
Обзор проектаЗадаем вопросы2Диапазоны и шаги
Закрытые и полуоткрытыеШагМетоды диапазоновДиапазоны в SwitchИтоги: Сетка календаряПотренируйтесь самостоятельно: Песочница Swift