Найти в Дзене
CyberPulse

Операторы циклов в Java: for, while, do-while

Представьте, что вам нужно вывести на экран числа от 1 до 100. Писать 100 раз System.out.println() — неразумно и утомительно. А что если нужно вывести миллион чисел? Для таких задач в программировании существуют циклы — конструкции, которые позволяют повторять блок кода многократно. Цикл while — это цикл с предусловием. Он сначала проверяет условие, и только если оно истинно, выполняет команды внутри тела цикла. while (условие) {
// команды для повторения
}
// код после цикла Представьте программу для кондиционера: while (температураВКомнате > желаемаяТемпература) {
охлаждатьВоздух();
}
остановитьОхлаждение(); Задача: вывести все числа от 1 до 100 и сумму всех этих чисел(1+2+3+4+5+6 и тд.) Реализация: class Counter {
public static void main(String[] args) {
int i = 1;
int sum = 0;
while (i <= 100) {
System.out.println(i);
i++; // увеличиваем i на 1
sum +=i
} System.out.println(sum);
System
Оглавление

Зачем нужны циклы?

Представьте, что вам нужно вывести на экран числа от 1 до 100. Писать 100 раз System.out.println() — неразумно и утомительно. А что если нужно вывести миллион чисел? Для таких задач в программировании существуют циклы — конструкции, которые позволяют повторять блок кода многократно.

Цикл while: повторяем, пока условие истинно

Цикл while — это цикл с предусловием. Он сначала проверяет условие, и только если оно истинно, выполняет команды внутри тела цикла.

Синтаксис:

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

Практический пример:

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

while (температураВКомнате > желаемаяТемпература) {
охлаждатьВоздух();
}
остановитьОхлаждение();

Задача:

вывести все числа от 1 до 100 и сумму всех этих чисел(1+2+3+4+5+6 и тд.)

Реализация:

class Counter {
public static void main(String[] args) {
int i = 1;
int sum = 0;
while (i <= 100) {
System.out.println(i);
i++; // увеличиваем i на 1
sum +=i
}

System.out.println(sum);
System.out.println("Готово!");
}
}

Наш цикл в коде будет работать пока
переменная i меньше или равно 100
в блоке цикла мы увеличиваем (i++; // увеличиваем i на 1) таким образом выводим все переменные i пока они меньше или равно 100, так же у нас есть переменная sum, к ней мы с каждый раз добавляем новую i когда она обновляется

Цикл do-while

Цикл do-while похож на цикл while с одним небольшим отличием. Цикл do-while всегда выполняется один раз перед проверкой условия.
do {
// Блок кода
}
while(condition);

Пример

На этом примере вы видите, что оператор do или блок кода всегда выполняются один раз перед проверкой истинности или ложности условия.

static int x = 5;
public static void main(String[] args) {
do {
System.out.println("x = "+x);
i++;
}
while(x < 3);
}

Поскольку это do-while мы обязательно выполняем код как минимум один раз.
в блоке
do мы выводим значение числа х, затем проверяем условие, пока (5<3)
это ложь, значит цикл продолжаться не будет и переменная i не будет увеличиваться
Ответ: 5

Цикл for: компактная запись счётчика

Цикл for — это более компактная форма цикла, которая объединяет инициализацию переменной, условие и изменение переменной в одной строке.

Синтаксис:

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

Тот же пример с числами, но с for:

class CompactCounter {
public static void main(String[] args) {
for (int i = 1; i <= 100; i++) {
System.out.println(i);
}
System.out.println("Готово!");
}
}

Все тоже самое мы делаем в одной строке: for (int i = 1; i <= 100; i++)
создаем переменную i, проходим по циклу пока i <= 100, с каждой итерацией увеличиваем i++

Управление циклами: break и continue

Иногда нужно прервать цикл досрочно или пропустить текущую итерацию. Для этого существуют специальные команды:

break — мгновенный выход из цикла

for (int i = 0; i < 15; i++) {
if (i == 9) {
System.out.println("Найдено число 9!");
break; // сразу выходим из цикла
}
System.out.println("Текущее число: " + i);
}
System.out.println("Программа завершена");

Наш цикл должен пройти от 0 до 15, но в нашем цикле есть оператор условия if,
по его условию когда i=9, вызывается команда
break, которая полностью останавливает цикл, цикл заканчивается на i=9

continue — пропуск текущей итерации

for (int i = 0; i < 15; i++) {
if (i == 9) {
System.out.println("Пропускаем число 9");
continue; // переходим к следующей итерации
}
System.out.println("Текущее число: " + i);
}
System.out.println("Программа завершена");

continue - просто пропускает указанную итерацию и продолжает цикл до конца

Практическое применение: поиск числа с флагом

Флаг — это булева переменная, которая отвечает на вопрос "произошло ли нужное событие?".

Задача:

Определить, есть ли среди введённых чисел ноль, и вывести "YES" если есть, "NO" если нет.

Решение с флагом:

import java.util.Scanner;

class ZeroFinder {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); // сколько чисел проверим
boolean foundZero = false; // флаг - нашли ли ноль?

for (int i = 0; i < n; i++) {
int number = sc.nextInt();
if (number == 0) {
foundZero = true; // нашли ноль!
break; // можно выйти досрочно
}
}

if (foundZero) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}

Вводим число n в терминал, это будет переменная до которой будет идти цикл.
(boolean foundZero = false) создаем флаг
В цикле создаем еще одну переменную, это числа которые мы можем ввести, но их не может быть больше переменной n
Если мы находим цифру 0, то флаг меняется (foundZero = true;)
В операторе if мы проверяем, если true, значит нашли 0, иначе не нашли

Почему это важно?

Циклы — фундаментальная концепция программирования. Они позволяют:

  • Обрабатывать большие объемы данных
  • Автоматизировать повторяющиеся задачи
  • Создавать интерактивные программы
  • Эффективно работать с коллекциями элементов

Освоив циклы, вы сможете писать по-настоящему мощные и эффективные программы!

Заключение

Мы закончили тему операторов, это уже ооочень большой шаг для начинающего айтишника, но еще все впереди, не забывайте решать задачи самостоятельно. Всем спасибо.