В жизни есть события, которые постоянно повторяются. Каждый день встает и заходит солнце, каждый год приходят зима, весна, лето и осень. В программировании тоже есть такие повторы. Это циклы — они запускают один и тот же код столько раз, сколько нужно.
В статье рассмотрим цикл for.Принцип работы и как его использовать.
Общее о цикле
Цикл — это конструкция, которая повторяет одни и те же действия, пока есть определенное условие.
Конструкцию можно описать так:
- Условие завершения — цикл работает, пока условие истинно.
- Тело цикла — это действия, которые нужно выполнить.
Вот как это выглядит в Java:
- Цикл while
Выполняет действие, пока есть условие.
while (i < 50) { // Цикл работает, пока i меньше 50
i++; // Увеличиваем i на 1
System.out.println(i); // Печатаем значение i
}
Цикл будет работать, пока i меньше 50. - Цикл do…while (с постусловием)
Этот цикл всегда пройдет хотя бы один раз, даже если условие не выполнено. Потому что сначала выполняется тело цикла, а потом проверяется условие.
do {
i++;
System.out.println(i);
} while (i < 50);
Программа сразу заходит в цикл и печатает 100, хотя i уже не меньше 50. Только после этого проверяется условие i < 50. Условие ложное, поэтому повторов больше не будет. Но одна итерация всё равно прошла. - Вложенные циклы
Это цикл внутри цикла.
while (i < 50) {
while (j < 5) {
j++;
System.out.println(i + j);
}
i++;
}
Внешний цикл следит за i, а внутренний — за j. Такой подход часто используют, когда нужно работать с таблицами, матрицами или несколькими уровнями данных.
На курсе «Java-разработчик» поймете, как работают циклы, объекты и протоколы. Научитесь разрабатывать веб-приложения на языке Java и популярном фреймворке Spring Boot, проектировать и создавать схемы баз данных и работать с базами, проводить автоматизированное тестирование и проверять свои алгоритмы и многое другое. За одиннадцать месяцев с нуля соберете классное портфолио, которое сможете показать работодателю.
Что такое цикл for в Java
Цикл for — это удобный способ повторить одно и то же действие несколько раз. Особенно когда заранее известно, сколько раз это нужно сделать. Например, напечатать слово «Привет» десять раз.
Вот как это выглядит в коде:
for (int i = 0; i < 10; i++) {
System.out.println("Привет");
}
int i = 0
— создает переменную i и присваивает ей значение 0. Это начало цикла.
i < 10
— условие, при котором цикл выполняется. Пока i меньше 10, цикл продолжается.
i++
— после каждой итерации (повторения) значение i увеличивается на 1. Это шаг цикла.
System.out.println("Привет");
— это тело цикла, действие, которое выполняется при каждой итерации.
Итог: слово «Привет» напечатано 10 раз — от i = 0 до i = 9.
Принцип работы цикла for в Java
Цикл for
помогает повторять команды нужное количество раз и указывает, когда остановиться.
Общая структура цикла for
в Java:
for (инициализация; условие; изменение) {
// блок кода, который будет выполняться
}
- Инициализация указывает, с какого значения начинается счетчик. Например, int i = 0.
- Условие — проверка перед каждой повторной попыткой. Пока условие верно, цикл работает. Например, i < 10.
- Изменение обновляет счетчик после каждого круга. Например: i++ — это значит, что i увеличивается на 1.
Рассмотрим простой пример. Нужно напечатать числа от одного до пяти:
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) { // инициализация: i=1, условие: i <= 5, изменение: i++
System.out.println(i); // блок кода, который будет выполняться
}
}
}
Когда запустили код, происходит следующее:
- Первая итерация: i равен 1, условие 1 <= 5 истинно.
System.out.println(i)
; выводит 1. - Вторая итерация: i равен 2, условие 2 <= 5 истинно, система выводится 2.
- Третья итерация: i равен 3, условие 3 <= 5 истинно, получаем 3.
- Четвертая итерация: i равен 4, условие 4 <= 5 истинно — 4.
- Пятая итерация: i равен 5, условие 5 <= 5 истинно — 5.
- Шестая итерация: i равен 6, условие 6 <= 5 ложно — цикл останавливается.
Хорошо подходит, если нужно пройтись по числам, массивам или спискам.
Как используют цикл for в Java
Цикл не только перебирает числа в диапазоне, но и выполняет другие задачи.
- Повторяет слово несколько раз
Если нужно напечатать слово или фразу несколько раз, цикл for подойдет идеально:
for (int i = 0; i < 3; i++) {
System.out.println("Привет!");
}
Начинается сi = 0.
Покаi < 3
— выполняется тело цикла.
После каждого шага i увеличивается на 1.
В результате видите:
Привет!
Привет!
Привет!
Таким методом можно быстро менять количество повторов. Просто измените условие, например: i < 10. - Перебирает массив
Сfor
удобно обрабатывать каждый элемент в массиве. Например, есть список фруктов. И нужно вывести название каждого фрукта на экран.
String[] fruits = {"Яблоко", "Банан", "Груша"};
for (int i = 0; i < fruits.length; i++) {
System.out.println("Фрукт: " + fruits[i]);
}
В массивеfruits
3 элемента.
Цикл начинается сi = 0
и работает, покаi < fruits.length
меньше 3. Каждый шаг выводит элемент с индексомi
.
Результат на экране:
Фрукт: Яблоко
Фрукт: Банан
Фрукт: Груша
Такой способ удобный, если в массиве 100 или 1000 элементов. Цикл обработает всё, и не нужно писать лишний код.
Цикл for в Java
С циклом for код становится короче и понятнее.
- Обратный цикл for
Можно не только увеличивать, но и уменьшать значение счетчика.
for (int i = array.length - 1; i >= 0; i--) {
System.out.println(array[i]);
}
Такой цикл пройдет по массиву в обратном порядке — с конца к началу. - Цикл с шагом
Шаг — это то, на сколько меняется счетчик на каждой итерации. По умолчанию он равен 1 (i++), но можно задать любой:
for (int i = 0; i < array.length; i += 3) {
System.out.println(array[i]);
}
i увеличивается на 3. Значит, цикл будет брать только каждый третий элемент массива. - Вложенные циклы
Вложенный цикл в Java — это цикл внутри цикла. Таким способом удобно работать с двумерными массивами (матрицами):
int[][] matrix = {
{1, 2, 3},
{4, 5, 6}
};
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.println(matrix[i][j]);
}
}
Такой код пройдет по всем элементам матрицы и выведет их по очереди. - Бесконечный цикл
Если в условии всегда стоит true, цикл будет работать бесконечно:
for (int i = 0; true; i++) {
System.out.println(i);
}
А еще можно вообще не указывать никаких условий, и это тоже будет бесконечный цикл:
for (;;) {
System.out.println("wow");
}
Но будьте внимательны. Из-за таких циклов программа может зависнуть и придется перезагружать компьютер.
Практика — это основная часть обучения на курсе «Java-разработчик» в Skypro. Уже во время учебы начнете работать над реальными проектами. А в конце получите диплом и знания, которые реально нужны работодателям.
Операторы, которые изменяют поведение цикла
Иногда нужно изменить стандартную работу цикла. Например, остановить раньше или пропустить часть кода. Для этого в Java есть специальные операторы — break и continue.
- Оператор break
Оператор break останавливает цикл полностью, даже если условие еще не выполнено.
DayOfWeek dayOfWeek = LocalDate.now().getDayOfWeek();
for (int i = 0; i < 10; i++) {
System.out.println(i);
if (dayOfWeek == DayOfWeek.MONDAY && i == 5) {
break; // выходим из цикла, если понедельник и i равны 5
}
}
В любой день, кроме понедельника, программа напечатает числа от 0 до 9. А в понедельник — только от 0 до 5. Когда i станет равно 5, break остановит цикл. - Оператор continue
Оператор continue не завершает цикл, а пропускает текущий шаг и переходит к следующей итерации.
DayOfWeek dayOfWeek = LocalDate.now().getDayOfWeek();
for (int i = 0; i < 10; i++) {
if (dayOfWeek == DayOfWeek.FRIDAY && i == 5) {
continue; // пропускаем печать, если пятница и i равны 5
}
System.out.println(i);
}
В любой день, кроме пятницы, программа напечатает числа от 0 до 9. А в пятницу — все числа от 0 до 9, кроме 5. На шаге, когда i == 5, сработает continue, и System.out.println(i); просто не выполнится.
Эти команды помогают управлять циклом в зависимости от ситуации.
Оператор foreach
Когда работаете с массивами или коллекциями, часто нужно просто пройтись по всем элементам и что-то с ними сделать. Например, распечатать каждый элемент. Раньше нужно было писать много одинакового кода: начинать с первого элемента, увеличивать индекс на 1, проверять условие окончания и так далее.
Цикл foreach
упростил этот процесс.
Структура цикла:
for (тип переменной : коллекция) {
// действия с элементом
}
- переменная — временная переменная, которая по очереди принимает значения из массива или коллекции.
- коллекция — массив или любой другой список, через который нужно пройтись.
Вот как это выглядит на примере:
String[] words = { "Раз", "Два", "Три" };
for (String word : words) {
System.out.println(word);
}
- В массиве
words
три строки. - Цикл
foreach
проходит по всем элементам массива — сначала «Раз», потом «Два», «Три». - На каждой итерации элемент записывает переменную
word
, аSystem.out.println(word)
печатает его.
Это удобно. Не нужно думать о номере элемента, писать i = 0, i < array.length, i++
. Всё происходит автоматически. Вы просто получаете по одному элементу из массива и работаете с ним.
А еще, как и в обычных циклах, в foreach
можно использовать функцию break
— остановить цикл.
И continue
— перейти к следующему элементу, пропустив текущий.
Главное о цикле for в Java
- Цикл
for
— это один из видов циклаwhile
. Его удобно использовать, когда заранее известно, сколько раз нужно повторить команды. - Счетчик в цикле
for
можно не только увеличивать, но и уменьшать — это называется обратный цикл. - Если нужно работать с таблицами или массивами в несколько строк и столбцов, используют вложенные циклы
for
. - Команда
break
останавливает цикл раньше, если это нужно. Аcontinue
— пропускает одну итерацию и переходит к следующей. - Цикл
foreach
— это упрощенная версия for, когда надо просто пройтись по всем элементам массива или коллекции.
Добавить комментарий