Управление циклами в контексте switch
Различайте break в циклах и в конструкциях switch.
«Управление циклами в контексте switch» — бесплатный урок Swift Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.
break в switch
Внутри switch оператор break завершает вариант switch. В Swift варианты не проваливаются автоматически, поэтому break обычно необязателен, но разрешён.
let n = 2
switch n {
case 1:
print("one")
case 2:
print("two")
break
default:
print("other")
}Пустой вариант с break
Используйте break, чтобы явно указать, что вариант ничего не делает; это понятнее пустого тела.
let code = 0
switch code {
case 0:
break // intentionally ignore
default:
print("handled", code)
}
print("after switch")break в switch внутри цикла
Если switch находится внутри цикла, обычный break выходит из switch, а не из цикла.
for n in 1...4 {
switch n {
case 3:
break // exits switch only
default:
print(n)
}
}
print("loop finished")Выход из цикла из switch
Чтобы выйти из окружающего цикла изнутри switch, пометьте цикл и используйте break label.
loop: for n in 1...5 {
switch n {
case 3:
break loop
default:
print(n)
}
}
print("done")continue из switch
Обычный continue внутри switch относится к окружающему циклу и переходит к его следующей итерации.
for n in 1...5 {
switch n {
case let x where x % 2 == 0:
continue
default:
print(n)
}
}Почему важно различать
Путаница между break для switch и break для цикла — распространённая ошибка. Помните: обычный break в switch выходит только из switch.
for n in 1...3 {
switch n {
case 2:
break
default:
print("value", n)
}
}
print("all values processed")fallthrough
Если требуется поведение с проваливанием в следующий вариант, используйте явное ключевое слово fallthrough.
let n = 1
switch n {
case 1:
print("one")
fallthrough
case 2:
print("two")
default:
print("done")
}Именованный break для ясности
Даже если это не строго необходимо, именованный break показывает, что требуется выйти именно из цикла.
scan: for value in [10, 20, 30, 40] {
switch value {
case 30:
break scan
default:
print(value)
}
}Сочетание предложений where
Предложения where для шаблонов вместе с continue позволяют элегантно фильтровать значения внутри switch.
for n in 1...6 {
switch n {
case let x where x > 4:
continue
default:
print(n)
}
}Вложенные switch и цикл
Во вложенных циклах и switch метки однозначно указывают цель перехода.
outer: for i in 1...3 {
for j in 1...3 {
switch j {
case 2:
break outer
default:
print(i, j)
}
}
}Рекомендуемый подход
Используйте обычный break только для выхода из варианта switch; всегда помечайте цикл, если изнутри switch требуется выйти именно из цикла.
main: for n in 1...5 {
switch n {
case 4:
break main
default:
print(n)
}
}Быстрая проверка
Проверьте различие между break для switch и break для цикла.
Итоги
В switch обычный break выходит только из варианта switch (в Swift нет неявного проваливания; для этого используйте fallthrough). Чтобы изнутри switch выйти из окружающего цикла, пометьте цикл и используйте break label. Обычный continue по-прежнему относится к циклу.
loop: for n in 1...4 {
switch n {
case 3: break loop
default: print(n)
}
}Изучай Swift с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 122
- Уроки
- 409
Часто задаваемые вопросы
Урок «Управление циклами в контексте switch» бесплатный?
Да — полный текст урока «Управление циклами в контексте switch» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.
Чему я научусь в уроке «Управление циклами в контексте switch»?
Различайте break в циклах и в конструкциях switch. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Swift Academy?
Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Управление циклами в контексте switch»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Swift Academy?
Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы break и continue
- Именованные инструкции
- Выход из вложенных циклов
- Управление циклами в контексте switch