Menu
Coddy logo textTech

Оператор Switch

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

Когда вы проверяете одно значение на соответствие множеству возможных вариантов, оператор switch предлагает более чистую альтернативу длинным цепочкам else if. Он особенно полезен, когда вам нужно обработать несколько различных случаев.

let day = "Monday"

switch day {
case "Monday":
    print("Start of the week")
case "Friday":
    print("Almost weekend!")
case "Saturday", "Sunday":
    print("Weekend!")
default:
    print("Regular day")
}

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

Кейс default обрабатывает любые значения, которые не соответствуют другим кейсам — он обязателен, когда ваши кейсы не охватывают все возможные значения. В отличие от некоторых других языков, switch в Swift не переходит автоматически к следующему кейсу, поэтому вам не нужны инструкции break.

let grade = "B"

switch grade {
case "A":
    print("Excellent")
case "B":
    print("Good")
case "C":
    print("Fair")
default:
    print("Needs improvement")
}
challenge icon

Задание

Легко

Напишите функцию getSeasonActivity, которая принимает season и возвращает рекомендованное занятие для этого сезона.

Используйте оператор switch для сопоставления сезона и возврата соответствующего занятия.

Варианты (Cases):

  • "Spring" - вернуть "Go hiking"
  • "Summer" - вернуть "Go swimming"
  • "Fall", "Autumn" - вернуть "Go apple picking" (оба варианта должны возвращать одно и то же занятие)
  • "Winter" - вернуть "Go skiing"
  • Любое другое значение - вернуть "Stay home"

Параметры:

  • season (String): Название сезона

Возвращает: Рекомендованное занятие в виде String

Шпаргалка

Оператор switch представляет собой более чистую альтернативу множественным операторам else if при проверке одного значения на соответствие множеству возможных вариантов.

Базовый синтаксис:

let day = "Monday"

switch day {
case "Monday":
    print("Start of the week")
case "Friday":
    print("Almost weekend!")
case "Saturday", "Sunday":
    print("Weekend!")
default:
    print("Regular day")
}

Ключевые моменты:

  • Swift сравнивает значение после switch с каждым case
  • Несколько значений можно объединить в одном кейсе через запятую
  • Кейс default обрабатывает значения, которые не совпали с другими вариантами, и обязателен, если кейсы не охватывают все возможные значения
  • В Swift оператор switch не переходит к следующему кейсу автоматически, поэтому операторы break не требуются

Пример со значениями:

let grade = "B"

switch grade {
case "A":
    print("Excellent")
case "B":
    print("Good")
case "C":
    print("Fair")
default:
    print("Needs improvement")
}

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

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

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

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