Swift Academy · Урок

Управление циклами в контексте switch

Различайте break в циклах и в конструкциях switch.

Урок 4 из 413 шагов

«Управление циклами в контексте 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 — локальная установка не требуется.

Все уроки этого курса

  1. Основы break и continue
  2. Именованные инструкции
  3. Выход из вложенных циклов
  4. Управление циклами в контексте switch
← Назад к Swift Academy