Menu
CoddyTech

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 проверяет каждый вариант по порядку и выполняет первый совпавший. Поскольку наша оценка равна 85, она попадает в диапазон 80..<90, поэтому печатается «B». Этот подход гораздо чище, чем написание нескольких условий else if с операторами сравнения.

challenge icon

Задание

Легко
Напиши функцию getAgeCategory, которая принимает age и возвращает категорию жизненного этапа в зависимости от возраста.

Используй оператор switch с диапазонами, чтобы отнести возраст к одному из пяти жизненных этапов.

Условия:

  • 0...2 — вернуть "Infant"
  • 3...12 — вернуть "Child"
  • 13...19 — вернуть "Teenager"
  • 20...64 — вернуть "Adult"
  • 65...120 — вернуть "Senior"
  • Любое другое значение — вернуть "Invalid age"

Параметры:

  • age (Int): возраст человека

Возвращает: категорию жизненного этапа в виде String

Попробуйте сами

func getAgeCategory(age: Int) -> String {
    // Напишите код здесь
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Песочница Swift