Menu
Coddy logo textTech

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 с операторами сравнения.

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

Шпаргалка

Операторы 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 {
    // Напишите код здесь
}
quiz iconПроверьте себя

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

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