Управление выполнением цикла

Этот пример перебирает числа, начиная от нуля, и выводит первые три чётных.

int numbersPrinted = 0;
// счётчик, который будет показывать, 
// сколько чисел выведено

for (int i = 0; true; i++) {
    if (i%2 == 1) // если число нечётное,
        continue; // прерываем итерацию
        // i увеличивается на 1, начинается следующая итерация

    // если число чётное, итерация продолжается,

    System.out.println(i); // выводим число
    numbersPrinted++;// увеличиваем счётчик выведенных чисел
    if (numbersPrinted == 3) // если только что вывели третье число, то
        break; // прерываем выполнение цикла
        
    // после итерации i, как обычно, увеличивается на 1
}

Вывод:

0
2
4
Схема:
— объявить переменную numbersPrinted равной 0
— объявить переменную i равной 0 (начальная установка)
— новая итерация
— — Остаток от деления i (0) на 2 равен 1 (ч-ло нечётн.)? Нет.
— — Вывести i (0)
— — увеличить numbersPrinted на единицу (до 1)
— — numbersPrinted равно трём? Нет.
— — увеличить i на единицу (до 1)
— новая итерация
— — Остаток от деления i (1) на 2 равен 1 (ч-ло нечётн.)? Да.
— — — Прервать итерацию.
— — увеличить i на единицу (до 2)
— новая итерация
— — Остаток от деления i (2) на 2 равен 1 (ч-ло нечётн.)? Нет.
— — Вывести i (2)
— — увеличить numbersPrinted на единицу (до 2)
— — numbersPrinted равно трём? Нет.
— — увеличить i на единицу (до 3)
— новая итерация
— — Остаток от деления i (3) на 2 равен 1 (ч-ло нечётн.)? Да.
— — — Прервать итерацию.
— — увеличить i на единицу (до 4)
— новая итерация
— — Остаток от деления i (4) на 2 равен 1 (ч-ло нечётн.)? Нет.
— — Вывести i (4)
— — увеличить numbersPrinted на единицу (до 3)
— — numbersPrinted равно трём? Да.
— — — Прервать выполнение цикла.
Задачи к уроку Комментарии к уроку

Четыре нуля

Пока метод hasNext() возвращает true, метод getNext() будет возвращать число. Пройдите по всем числам, как в задаче про получение строк. Когда попадается положительное число, выводите его. Если ноль попадётся четыре раза, прервите выполнение.

{{ message.data }}

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