Исчерпывающий switch по значениям
Охватывайте все варианты или используйте ветвь по умолчанию.
«Исчерпывающий switch по значениям» — бесплатный урок Swift Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.
Что делает оператор выбора
switch сравнивает значение с несколькими вариантами и выполняет первый совпавший. Это понятная альтернатива длинным цепочкам if/else-if.
let day = 3
switch day {
case 1:
print("Monday")
case 2:
print("Tuesday")
case 3:
print("Wednesday")
default:
print("Other")
}Нет неявного перехода к следующей ветви
В отличие от C, ветви Swift не переходят автоматически к следующей. После выполнения совпавшей ветви оператор выбора завершается. break не нужен.
let n = 1
switch n {
case 1:
print("one")
case 2:
print("two")
default:
print("many")
}Оператор выбора должен охватывать все варианты
Оператор выбора должен охватывать каждое возможное значение. Для Int невозможно перечислить их все, поэтому нужно предоставить ветвь default.
let code = 500
switch code {
case 200:
print("OK")
case 404:
print("Not Found")
default:
print("Unhandled: \(code)")
}Ветвь по умолчанию
Ветвь default обрабатывает всё, что не совпало с предыдущими ветвями. Она должна находиться последней.
let grade = "X"
switch grade {
case "A":
print("Excellent")
case "B":
print("Good")
default:
print("Needs review")
}Выбор по строкам
Оператор выбора работает с любым сравнимым значением, в том числе со строками.
let command = "start"
switch command {
case "start":
print("Starting")
case "stop":
print("Stopping")
default:
print("Unknown command")
}Пустые ветви запрещены
Каждая ветвь должна содержать хотя бы одну инструкцию. Если ветвь действительно не должна ничего делать, напишите break.
let n = 2
switch n {
case 1:
print("one")
case 2:
break
default:
print("other")
}
print("done")Оператор выбора как инструкция
Оператор выбора выполняет инструкции; сам по себе он не возвращает значение. Чтобы получить значение, присвойте его в каждой ветви или используйте оператор для вызова функций.
let level = 2
var label: String
switch level {
case 1: label = "low"
case 2: label = "mid"
default: label = "high"
}
print(label)Выбор по логическому значению
Можно выполнить выбор по логическому значению с ветвями true и false. Ветвь по умолчанию не нужна, поскольку охвачены оба варианта.
let isReady = true
switch isReady {
case true:
print("Go")
case false:
print("Wait")
}Для перечислений не нужна ветвь по умолчанию
Если при выборе по перечислению обработан каждый его вариант, оператор уже является исчерпывающим, и ветвь по умолчанию не требуется.
enum Direction { case north, south }
let d = Direction.north
switch d {
case .north: print("Up")
case .south: print("Down")
}Понятная логика с несколькими вариантами
Оператор выбора упорядочивает решения с несколькими вариантами. Каждый результат находится в отдельной именованной ветви, которую легко просмотреть и расширить.
let score = 72
var result: String
switch score {
case 90...100: result = "A"
case 80..<90: result = "B"
case 70..<80: result = "C"
default: result = "F"
}
print(result)Расположение ветви по умолчанию
default должен быть последней ветвью. Если разместить его раньше, последующие ветви окажутся недостижимыми, а Swift это запрещает.
let x = 7
switch x {
case 0:
print("zero")
case 7:
print("seven")
default:
print("something else")
}Быстрая проверка
Проверьте исчерпывающий оператор выбора.
Повторение: исчерпывающий оператор выбора по значениям
Оператор switch в Swift выбирает первую совпавшую ветвь, никогда не переходит неявно к следующей и должен охватывать все варианты. Используйте default для типов с неограниченным набором значений, таких как Int или String; перечисления, варианты которых обработаны полностью, не нуждаются в ветви по умолчанию.
let n = 3
switch n {
case 1: print("a")
default: print("b")
}Изучай Swift с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 122
- Уроки
- 409
Часто задаваемые вопросы
Урок «Исчерпывающий switch по значениям» бесплатный?
Да — полный текст урока «Исчерпывающий switch по значениям» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.
Чему я научусь в уроке «Исчерпывающий switch по значениям»?
Охватывайте все варианты или используйте ветвь по умолчанию. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Swift Academy?
Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Исчерпывающий switch по значениям»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Swift Academy?
Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Исчерпывающий switch по значениям
- Сопоставление диапазонов и кортежей
- Привязка значений и предложения where
- Составные варианты и fallthrough