🔥 🚀 Важно для всех, кто работает с Java! 🔥
На JavaRocks ты найдешь уникальные туториалы, практические задачи и редкие книги, которых не найти в свободном доступе. Присоединяйся к нашему Telegram-каналу JavaRocks — стань частью профессионального сообщества!
Однажды Марк Цукерберг отметил, что компьютеры действительно хороши в повторении команд. Для человека это непросто, мы устаем от повторения одного и того же много раз подряд, но компьютер может делать это миллионы и миллиарды раз и никогда не надоедает. Если вы попытаетесь разослать поздравления всем пользователям Facebook, то вам просто не хватит ни времени, ни сил, чтобы справиться с такой задачей. Однако вы можете поручить эту задачу компьютеру, написав несколько строк кода. Именно так работают циклы. С их помощью можно поручить рутину компьютеру вместо того, чтобы делать все вручную.
Основной цикл в Java – это так называемый определенный цикл или цикл for.
Как написать цикл for в Java? Общая форма цикла for
Цикл For выполняет набор инструкций определенное количество раз. Например, написать пятьдесят раз “Я не должен быть таким, хо-хо-хо” или разослать приглашения всем своим друзьям – типичные задачи для этого вида цикла.
Синтаксис наиболее распространенного варианта цикла for:
for ([counter initialization]; [checking conditions]; [changing of the counter])
{
// инструкции
}
Run CodeСначала инициализация выполняется один раз, затем проверяется условие – оно должно быть логическим (boolean).
- Когда цикл только запускается, выполняется инициализация счетчика.
- Как только условие становится ложным, цикл прекращает свою работу.
Как правило, изменение счетчика происходит после каждой итерации. Обычно используется инкремент (++
) или декремент (--
).
Вы можете пропустить любое из трех выражений цикла (инициализация, проверка условия, изменение счетчика). Условие цикла проверяется перед следующим шагом цикла. Если условие ложно, программа выходит из цикла и продолжает выполнение инструкции, следующей за конструкцией for.
Здесь представлена блок-схема цикла for.

Как использовать цикл for в Java. Простой пример.
Вот конкретный пример цикла Java for. Давайте десять раз напишем “Hello!”. Строка каждый раз будет с новой строки с номером этой строки. Мы должны получить следующий вывод:
- Hello!
- Hello!
- Hello!
- Hello!
- Hello!
- Hello!
- Hello!
- Hello!
- Hello!
- Hello!
Вот наша Java-программа, которая решает эту задачу:
public class ForExample {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(i + 1 + ". Hello!");
}
}
}
Run CodeКак это работает?
Шаг 1. Счётчик i = 0
. Цикл проверяет условие i < 10
. Условие истинно — значит, тело цикла выполняется. Печатается строка "1. Hello!"
. Почему 1? Потому что i + 1
, а мы начали счёт с нуля. После этого i
увеличивается на 1 — теперь i = 1
.
Шаг 2. i = 1
. Условие i < 10
по-прежнему выполняется. Выводится "2. Hello!"
, так как i + 1 = 2
. Счетчик снова увеличивается: i = 2
.
…
Шаг 10. i = 9
. Цикл всё ещё выполняется, выводим "10. Hello!"
. Затем i
увеличивается до 10.
Шаг 11. i = 10
. Условие i < 10
больше не выполняется. Цикл завершает свою работу.

Цикл While и цикл for: различия и сходства
В Java бесконечный цикл while выполняется непрерывно, выполняется до тех пор, пока логическое условие возвращает true
.
Синтаксис цикла while:
while (boolean condition)
{
loop statements...
}
Run CodeВо многих случаях вы сами можете выбрать, какой цикл использовать – for
или while
. Иногда они настолько похожи, что работают одинаково. Например, вот та же задача (вывести слово “Hello!” десять раз с номером строки), но написанная с использованием while
:
public class ForAndForEach {
public static void main(String[] args) {
int j = 0; // используем счетчик
while (j < 10) {
System.out.println(j + 1 + ". Hello!");
j++;
}
}
}
Run CodeОднако профессиональные программисты не очень любят цикл while, и везде, где это возможно, стараются использовать цикл for.
for
и while
– в чем разница?
for | while |
---|---|
Используется, когда заранее известное число повторений. | Используется, когда количество повторений заранее неизвестно. |
Инициализация, проверка условий и изменение счетчика уже зашиты в синтаксис цикла | Инициализация и проверка условий внутри цикла. Счетчик при необходимости добавляется вручную. |
Бесконечный цикл:for (;;) { | Бесконечный цикл:while (true) { |
Как выйти из цикла for в Java
Обычно цикл for выполняется как поток, и естественный способ выйти из цикла — когда условие принимает ложное значение. Но в Java есть два управляющих оператора – break
и continue
, которые позволяют выйти из цикла раньше, не дожидаясь, пока условие станет ложным:
- break позволяет выйти из тела текущего цикла, как будто условие уже стало ложным.
- continue заставляет перескочить на следующую итерацию цикла, не выполняя оставшиеся инструкции в теле цикла.
Давайте решим следующую задачу, используя break и continue. У нас есть массив имен, и мы говорим привет всем из этого массива, кроме незнакомцев. Так что если мы встречаем строку «Stranger» во время нашего цикла, мы выходим из него (уходим и больше ни с кем не здороваемся).
Используем break
:
public class ForBreakExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
for (int i = 0; i < names.length; i++) {
// как выйти из цикла for, если в массиве встречается "Stranger"
if (names[i].equals("Stranger")) {
System.out.println("I don't chat with strangers");
break;
}
System.out.println("Hello," + names[i]);
}
}
}
Run CodeРезультат выполнения нашей программы:
Hello,Mike
Hello,Dustin
I don't chat with strangers
Видите? Мы вышли из цикла, прежде чем поприветствовать Лукаса и Уилла.
Теперь давайте используем continue. На этот раз мы просто пропустим незнакомца, но продолжим цикл и поздороваемся со всеми остальными:
public class ForContinueExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
for (int i = 0; i < names.length; i++) {
if (names[i].equals("Stranger")) {
System.out.println("I don't chat with strangers");
continue;
}
System.out.println("Hello," + names[i]);
}
}
}
Run CodeРезультат:
Hello,Mike
Hello,Dustin
I don't chat with strangers
Hello,Lucas
Hello,Will
Отлично! Мы поздоровались со всеми друзьями, но проигнорировали незнакомца. 🙂
Расширенная версия цикла for – цикл for-each
For-each — это разновидность цикла for, который используется, когда нужно обработать все элементы массива или коллекции. Кстати, в самом синтаксисе слово for-each
не используется – это просто удобное название.
Синтаксис следующий:
for (type itVar: array)
{
Block of operators;
}
Run Code
– тип элементов в массиве (он же тип переменной цикла),type
– имя переменной, которая будет поочередно принимать значения элементов,ItVar
array
– сам массив, либо, например, список (ArrayList
) или другая коллекция.
Обратите внимание: в этом цикле нет счетчика, переменная сразу перебирает элементы массива, а не их индексы.
Как работает цикл:
- При каждом проходе по циклу переменной присваивается очередной элемент из массива или коллекции.
- Затем выполняется блок кода, указанный в теле цикла.
Внимание: цикл for-each можно применять к массивам и любым классам, реализующим интерфейс java.lang.Iterable.
Решим ту же задачу с приветствием друзей, игнорируя незнакомцев (“Stranger”), но на этот раз воспользуемся циклом for-each.
public class ForEachExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
// пример for-each цикла на Java
for (String name : names) {
if (name.equals("Stranger")) {
System.out.println("I don't chat with strangers");
continue;
}
System.out.println("hello, " + name);
}
}
}
Run CodeОтличная практика! 🙂 Мы снова поприветствовали всех друзей, проигнорировав незнакомца, но сделали это в более лаконичной форме с помощью for-each
.
Чтобы закрепить материал, рекомендуем посмотреть этот видеоурок:
Перевод статьи «Java For Loop».