View Categories

Цикл for

Цикл for, в простонародии - счётчик. Довольно мощный инструмент по сравнению с циклом while - помимо проверки условия позволяет прямо в себе создавать переменные и выполнять инструкцию. В общем случае синтаксис такой:

for (инициализация; условие; инструкция) {
    // тело цикла
}

Цикл for должен состоять из трёх блоков в круглых скобках. Даже если какой-то из блоков отсутствует - точка с запятой должна быть на своём месте:

for (; условие;) {
    // тело цикла
}
for (;;) {
    // тело цикла
}
  • Сначала однократно выполняется блок инициализация. Переменные, созданные здесь, имеют область видимости в круглых скобках и в теле цикла
  • Затем циклично выполняются действия: проверяется блок условие
    • Если оно верно - выполняется тело цикла, затем выполняется блок инструкция
    • Если оно неверно - выход из цикла

Давайте распишем for при помощи while, чтобы логика работы была более прозрачная:

инициализация;

while (условие) {
    // тело цикла
    инструкция;
}

Счётчик #

Самое частое применение цикла for - счётчик, то есть цикл, который должен выполниться заданное количество раз. В этом случае создаётся переменная-счётчик, сравнивается со значением и изменяется в блоке инструкция:

for (int i = 0; i < 5; i++) {
    // здесь i принимает значения 0, 1, 2, 3, 4 - пять итераций
}

Важно! Переменные в цикле являются локальными и обязательно должны быть инициализированы!

Счётчик необязательно должен начинаться с нуля и иметь шаг 1:

for (int i = 6; i >= -2; i -= 2) {
    // здесь i принимает значения 6, 4, 2, 0, -2
}

Можно создать несколько переменных и выполнять разные инструкции - цикл очень гибкий и позволяет описать одной строкой довольно непростой алгоритм:

for (int i = 0, j = 1; i < 5; i++, j += i) {
    // пять итераций (счётчик по i)
    // j каждый раз увеличивается на значение i
    // здесь j принимает значения 1, 2, 4, 7, 11
}

Или вовсе сделать бесконечный цикл - аналог while (true):

for (;;);

Оператор break #

Позволяет прервать цикл в указанном месте и покинуть его:

for (int i = 0; i < 5; i++) {
    if (i == 2) break;
    // здесь i принимает значения 0, 1
}

Оператор continue #

Позволяет прервать цикл в указанном месте и перейти к проверке условия:

for (int i = 0; i < 5; i++) {
    if (i == 2) continue;
    // здесь i принимает значения 0, 1, 3, 4 - значение 2 пропущено
}
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Прокрутить вверх