break, continue и именованные циклы
Точно управляйте циклами с помощью меток.
«break, continue и именованные циклы» — бесплатный урок Zig Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Zig Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Zig Academy содержит 4 уроков всего.
Два средства управления циклом
Внутри любого цикла break полностью завершает цикл, а continue переходит к следующей итерации. Они дают точный контроль над ходом выполнения. 🎛️
break немедленно выходит
Когда выполняется break, цикл немедленно останавливается, а выполнение продолжается со строки сразу после цикла. Остальная часть тела не выполняется.
for (items) |x| {
if (x == 0) break;
use(x);
}continue переходит дальше
continue прекращает текущую итерацию и переходит к следующей, оставляя сам цикл выполняться.
for (items) |x| {
if (x < 0) continue;
total += x;
}Они обращаются к самому внутреннему циклу
По умолчанию break и continue влияют только на самый внутренний окружающий их цикл. Внешний цикл продолжает работу, как будто ничего не произошло.
Именование цикла
Можно присоединить к циклу метку, указав имя и двоеточие. Эта метка позволяет обратиться к нужному циклу из более глубоко вложенного кода.
outer: for (rows) |row| {
for (row) |cell| {
check(cell);
}
}break к метке
Напишите break :outer, чтобы выйти из именованного внешнего цикла прямо из вложенного цикла. Один оператор завершает оба уровня.
outer: for (rows) |row| {
for (row) |cell| {
if (cell == target) break :outer;
}
}continue к метке
Используйте continue :outer, чтобы перейти к следующей итерации внешнего цикла с меткой, немедленно оставив остаток внутреннего цикла.
Метки заменяют флаги
До появления меток можно было установить флаг found и проверять его после каждого цикла. break с меткой устраняет этот шаблонный код и читается понятнее.
break с меткой возвращает значение
Цикл с меткой также может быть выражением. break :outer value передаёт это значение как результат всего цикла с меткой.
const hit = outer: for (rows) |row| {
for (row) |c| {
if (c == target) break :outer c;
}
} else 0;Метки применимы и к блокам
Метки предназначены не только для циклов. Обычный блок тоже можно пометить, а break со значением превращает этот блок в выражение.
const x = blk: {
const t = compute();
break :blk t * 2;
};Не углубляйте вложенность
Управление с метками — мощный инструмент, но глубоко вложенные циклы ухудшают читаемость. Используйте метки, когда они проясняют код, а не чтобы оправдать запутанную структуру.
Быстрая проверка
Из внутреннего цикла нужно выйти из внешнего цикла с именем outer. Какой оператор это выполняет?
Итоги
Вы освоили break и continue: по умолчанию они действуют на самый внутренний цикл, метки позволяют работать с вложенными циклами, помеченные break могут возвращать значение, а метки можно использовать и с блоками. 🎯
Изучай Zig с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 30
- Уроки
- 120
Часто задаваемые вопросы
Урок «break, continue и именованные циклы» бесплатный?
Да — полный текст урока «break, continue и именованные циклы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Zig Academy, подпишись на CoddyKit PRO. Курс Zig Academy содержит 4 уроков всего.
Чему я научусь в уроке «break, continue и именованные циклы»?
Точно управляйте циклами с помощью меток. Ты практикуешь Zig Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Zig Academy?
Предыдущий опыт не требуется. Zig Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «break, continue и именованные циклы»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Zig Academy?
Да. Каждый урок Zig Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- if как инструкция и выражение
- Циклы while и выражения continue
- Циклы for по диапазонам и элементам
- break, continue и именованные циклы