Циклы

Циклы нужны для многократного повторения какого-либо действия. Один шаг цикла называется итерацией.

Самый распространённый оператор цикла — for

for (начальная установка; условие; действия после итерации) {
    // здесь указываются повторяемые действия
}

Начальная установка — действие, которое выполняется однократно, перед запуском цикла.

Условие — булево выражение, истинность которого проверяется перед каждой итерацией.

Действия после итерации — это действия, которые выполняются после каждой итерации.

Например, код

for (int i = 0; i < 5; i++) {
    System.out.println(i);
}

выведет на экран:

0
1
2
3
4

Схематически это можно представить так:

{"name":"for (int i = 0; i < 5; i++)","subCalls":[{"name":"начальная установка","subCalls":[{"name":"объявить переменную i равной нулю","subCalls":[]}]},{"name":"i (0) меньше пяти? Да","subCalls":[{"name":"итерация","subCalls":[{"name":"вывести значение i (0)","subCalls":[]},{"name":"увеличить значение i на единицу (до 1)","subCalls":[]}]}]},{"name":"i (1) меньше пяти? Да","subCalls":[{"name":"итерация","subCalls":[{"name":"вывести значение i (1)","subCalls":[]},{"name":"увеличить значение i на единицу (до 2)","subCalls":[]}]}]},{"name":"i (2) меньше пяти? Да","subCalls":[{"name":"итерация","subCalls":[{"name":"вывести значение i (2)","subCalls":[]},{"name":"увеличить значение i на единицу (до 3)","subCalls":[]}]}]},{"name":"i (3) меньше пяти? Да","subCalls":[{"name":"итерация","subCalls":[{"name":"вывести значение i (3)","subCalls":[]},{"name":"увеличить значение i на единицу (до 4)","subCalls":[]}]}]},{"name":"i (4) меньше пяти? Да","subCalls":[{"name":"итерация","subCalls":[{"name":"вывести значение i (4)","subCalls":[]},{"name":"увеличить значение i на единицу (до 5)","subCalls":[]}]}]},{"name":"i (5) меньше пяти? Нет, цикл завершён","subCalls":[]}]}

Аналогичный цикл с другими параметрами

for (int i = 7; i < 14; i += 2) {
    System.out.println(i);
}

выведет на экран:

7
9
11
13

Пример: звёздочки в пароле

Допустим, в пароле пользователя шесть знаков. Код:

System.out.print("Ваш пароль: ");
// метод print, в отличие от println, не создаёт новую строку
for (int i = 0; i < 6; i++) {
    System.out.print("*");
}

выведет на экран:

Ваш пароль: ******

Самой простой оператор цикла — while

while (условие) {
    // действия
}

Такой цикл выполняется, пока истинно условие.

Обычно используется такой код, так как он проще и понятнее:

for (int i = 0; i < 5; i++) {
    System.out.println(i);
}

Эквивалентный ему код:

int i = 0;
while (i < 5) {
    System.out.println(i);
    i++;
}

Цикл while зачастую используется, когда количество итераций не определено заранее. Например, можно скачивать файл из интернета кусочками по 1 КиБ и записывать на жёсткий диск — это действие нужно повторять, пока «кусочки» не закончатся.

Задачи к уроку Комментарии к уроку

От a до z

Выведите в цикле все буквы от a до z, воспользовавшись методом char letterFromNumber(int n);.

{{ message.data }}

Пока строки не закончатся

До тех пор, пока метод hasNext() возвращает true, выводите значение, возвращаемое методм getNext().

{{ message.data }}

Сообщить об ошибке