Циклы while и for в Java

Циклы в Java: while, do-while и for, управление циклом через break и continue. Научимся повторять действия и перебирать значения.

Цикл повторяет блок кода, пока выполняется условие. Без циклов пришлось бы копировать один и тот же код десятки раз.

Цикл while

while проверяет условие перед каждой итерацией и повторяет тело, пока условие истинно.

int i = 1;
while (i <= 5) {
    System.out.println("Шаг " + i);
    i++;                 // обязательно меняем переменную, иначе цикл вечный
}

Вывод:

Шаг 1
Шаг 2
Шаг 3
Шаг 4
Шаг 5

Если забыть изменить переменную условия (i++), цикл никогда не остановится — это бесконечный цикл.

Цикл do-while

Похож на while, но проверяет условие после тела. Поэтому тело выполнится хотя бы один раз, даже если условие сразу ложно.

int n = 10;
do {
    System.out.println("Выполнилось один раз, n = " + n);
} while (n < 5);

Вывод:

Выполнилось один раз, n = 10

Цикл for

Когда число повторений известно, удобнее for. Он собирает в одной строке три части: инициализацию счётчика, условие и шаг.

for (int i = 1; i <= 5; i++) {
    System.out.println(i * i);   // квадраты чисел
}

Вывод:

1
4
9
16
25

Порядок работы for: int i = 1 выполняется один раз в начале; затем перед каждой итерацией проверяется i <= 5; после тела выполняется i++.

break и continue

Внутри цикла поведение можно менять: break досрочно выходит из цикла, continue пропускает остаток текущей итерации и переходит к следующей.

for (int i = 1; i <= 10; i++) {
    if (i == 6) {
        break;          // выходим из цикла на шестёрке
    }
    if (i % 2 == 0) {
        continue;       // пропускаем чётные
    }
    System.out.println(i);
}

Вывод:

1
3
5

Коротко

  • while проверяет условие до тела, do-while — после (тело выполнится минимум раз).
  • for удобен, когда число итераций известно: инициализация, условие и шаг в одной строке.
  • Всегда меняйте переменную условия, иначе получите бесконечный цикл.
  • break выходит из цикла, continue переходит к следующей итерации.
Проверьте себя
1. Чем do-while отличается от while?
AНичем
Bdo-while проверяет условие после тела и выполняет его минимум раз
Cdo-while быстрее
Dwhile не может быть бесконечным
2. Что делает оператор continue внутри цикла?
AПолностью выходит из цикла
BПропускает остаток итерации и переходит к следующей
CПерезапускает программу
DОстанавливает программу
3. В цикле for (int i = 1; i <= 5; i++) что выполняется после каждой итерации тела?
Aint i = 1
Bi <= 5
Ci++
DНичего
Поддержать проект