Zig Academy · Урок

break, continue и именованные циклы

Точно управляйте циклами с помощью меток.

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

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

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

  1. if как инструкция и выражение
  2. Циклы while и выражения continue
  3. Циклы for по диапазонам и элементам
  4. break, continue и именованные циклы
← Назад к Zig Academy