Menu
Coddy logo textTech

Switch с диапазонами

Часть раздела Основы путешествия по Swift на Coddy. Урок 30 из 86.

Операторы switch становятся ещё мощнее, если использовать диапазоны вместо отдельных значений. Это идеально подходит для распределения чисел по группам, например для преобразования score в grade.

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 до 100 включительно. Оператор .. создаёт полуоткрытый диапазон, исключающий верхнюю границу: 80..<90 соответствует значениям от 80 до 89.

Swift проверяет каждый случай по порядку и выполняет первый подходящий. Поскольку наш score равен 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