Именованные инструкции
Обращайтесь к внешним циклам с помощью именованных меток.
«Именованные инструкции» — бесплатный урок Swift Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 4 уроков всего.
Что такое метка
Метка инструкции задаёт имя цикла, чтобы можно было точно обратиться к нему с помощью break или continue.
outer: for i in 1...3 {
print("row", i)
}Синтаксис метки
Запишите имя метки, за которым следует двоеточие, непосредственно перед ключевым словом цикла.
search: for n in 1...5 {
print(n)
if n == 3 { break search }
}Соглашение об именовании
Метки являются обычными идентификаторами. Выбирайте описательные имена, например outer, rowLoop или search.
rowLoop: for r in 1...2 {
print("processing row", r)
}Именованный break
break label выходит из цикла с указанной меткой, а не только из самого внутреннего цикла.
outer: for i in 1...3 {
for j in 1...3 {
if j == 2 { break outer }
print(i, j)
}
}Именованный continue
continue label переходит к следующей итерации цикла с указанной меткой.
outer: for i in 1...3 {
for j in 1...3 {
if j == 2 { continue outer }
print(i, j)
}
}Метки у циклов while
Метка может быть у любого цикла, включая while.
var i = 0
mainLoop: while i < 5 {
i += 1
if i == 3 { break mainLoop }
print(i)
}Зачем нужны метки
Без меток break выходит только из самого внутреннего цикла. Метки позволяют напрямую управлять внешними циклами.
grid: for x in 0...2 {
for y in 0...2 {
if x + y == 3 { break grid }
print(x, y)
}
}Несколько меток
Можно пометить несколько вложенных циклов и обращаться к каждому из них независимо.
rows: for r in 1...2 {
cols: for c in 1...2 {
if c == 2 { continue rows }
print(r, c)
}
}Метки проясняют намерение
Хорошо названная метка показывает, на какой цикл влияет переход, улучшая читаемость вложенного кода.
scan: for value in [3, 6, 9, 12] {
if value > 8 { break scan }
print(value)
}Область действия метки
Метка видна только внутри своего цикла. Нельзя выполнить переход к метке, которая не охватывает текущую инструкцию.
first: for a in 1...2 {
print("a", a)
second: for b in 1...2 {
if b == 2 { break first }
print("b", b)
}
}Сочетание с условиями
Метки естественно сочетаются с условиями, позволяя реализовать поиск с остановкой по нескольким измерениям.
let matrix = [[1, 2], [3, 4]]
var target = -1
find: for row in matrix {
for v in row {
if v == 3 {
target = v
break find
}
}
}
print(target)Быстрая проверка
Проверьте инструкции с метками.
Итоги
Метка (name: перед циклом) позволяет направить break name и continue name к конкретному циклу, а не к самому внутреннему. Область действия метки ограничена её циклом, поэтому управление вложенными циклами становится явным.
outer: for i in 1...2 {
for j in 1...2 {
if j == 2 { continue outer }
print(i, j)
}
}Часто задаваемые вопросы
Урок «Именованные инструкции» бесплатный?
Да — полный текст урока «Именованные инструкции» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 4 уроков всего.
Чему я научусь в уроке «Именованные инструкции»?
Обращайтесь к внешним циклам с помощью именованных меток. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Swift Academy?
Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Именованные инструкции»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Swift Academy?
Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы break и continue
- Именованные инструкции
- Выход из вложенных циклов
- Управление циклами в контексте switch