Что такое циклы
Программа, написанная на языке Java, состоит из определенного кода. Обычно он выполняется последовательно: строка за строкой, сверху вниз. Но есть и такие конструкции кода, которые меняют линейное выполнение программы. Их называют управляющими конструкциями.
Циклы с предусловием: условие выполнения определяется перед первой итерацией.
Циклы с постусловием: условие выполнения определяется после первой итерации (поэтому они всегда выполняются минимум один раз). Полезны, когда нужно выполнять некое действие, пока не реализуется некое условие: например, считывать ввод пользователя, пока он не введет слово “stop”.
Циклы со счетчиком: количество итераций определяется смоделированным счетчиком. В условии цикла задается его начальное и конечное значение. Каждую итерацию счетчик наращивается. Мы можем заранее определить количество итераций.
Эти циклы бывают полезны, когда нужно перебрать все элементы в какой-то коллекции. Циклы со счетчиком называют “циклами для...”. “Для каждого элемента некоторой коллекции осуществить следующие действия”.
Допустимы случаи, когда выполнение цикла можно прервать до достижения его условия. Например, если у нас есть коллекция из 100 чисел и нам необходимо понять, содержит ли она отрицательные числа. Мы можем начать перебор всех чисел, используя цикл “для”. Но когда мы найдем первое отрицательное число, нам не обязательно перебирать оставшиеся числа. Мы можем прервать выполнение цикла, если его дальнейшее выполнение не имеет смысла. Подобные ситуации называют прерыванием цикла.
Безусловные циклы — циклы, которые выполняются бесконечно. Например: “Пока 1=1, печатать “1=1””. Такая программа будет выполняться, пока ее вручную не прервут.
Данные циклы тоже бывают полезны, когда используются вместе с прерыванием цикла “изнутри”. Используйте их осторожно, чтобы не спровоцировать зависание программы.
Подробнее с циклами в языке программирования Java можно познакомиться на 4-ом уровне курса JavaRush. В частности, с циклами while и for.
Циклы в Java
Теперь рассмотрим циклы в Java. В этом ЯП их есть несколько типов:while
— цикл с предусловием;do..while
— цикл с постусловием;for
— цикл со счетчиком (цикл для);for each..
— цикл “для каждого…” — разновидность for для перебора коллекции элементов.
while
, do.. while
и for
можно использовать в качестве безусловных циклов.
Сравнить синтаксис циклов в разных языках программирования можно на четвертом уровне обучения курса JavaRush. Например циклов for и while.
Рассмотрим кратко каждый из представленных типов.
Цикл while
Этот цикл в Java структурно выглядит так:
while (expression) {
statement(s)
}
Здесь:
expression
— условие цикла, выражение, которое должно возвращатьboolean
значение.statement(s)
— тело цикла (одна или более строк кода).
expression
. Если результатом выражения будет true, выполняется тело цикла — statement(s)
.
Пример:
public class WhileExample {
public static void main(String[] args) {
int countDown = 10;
while (countDown >= 0) {
System.out.println("До старта: " + countDown);
countDown --;
}
System.out.println("Поехали !");
}
}
Вывод:
До старта: 10
До старта: 9
До старта: 8
До старта: 7
До старта: 6
До старта: 5
До старта: 4
До старта: 3
До старта: 2
До старта: 1
До старта: 0
Поехали !
Используя while
, можно создать бесконечный цикл:
while (true) {
// тело цикла
}
Чтобы прервать выполнение цикла, используется оператор break
.
Например:
public class WhileExample {
public static void main(String[] args) {
int count = 1;
while (true) {
System.out.println("Строка №" + count);
if (count > 3) {
break;
}
count++; // Без наращивания цикл будет выполняться вечно
}
}
}
Вывод:
Строка №1
Строка №2
Строка №3
Строка №4
Попрактиковаться в написании своих циклов можно уже на 4-ом уровне курса JavaRush.
Цикл do..while
Структураdo.. while
выглядит так:
do {
statement(s)
} while (expression);
Здесь:
expression
— условие цикла, выражение, которое должно возвращатьboolean
значение.statement(s)
— тело цикла (одна или более строк кода).
while
, значение expression будет вычисляться после каждой итерации. Если результатом выражения будет true, в очередной раз выполнится тело цикла — statement(s)
(как минимум раз).
Пример:
public class DoWhileExample {
public static void main(String[] args) {
int count = 1;
do {
System.out.println("count = " + count);
count ++;
} while (count < 11);
}
}
Вывод:
count = 1
count = 2
count = 3
count = 4
count = 5
count = 6
count = 7
count = 8
count = 9
count = 10
Цикл for
Этот Java цикл выглядит так:
for (initialization; termination; increment) {
statement(s)
}
Здесь:
initialization
— выражение, которое инициализирует выполнение цикла. Исполняется только раз в начале цикла. Чаще всего в данном выражении инициализируют счетчик циклаtermination
—boolean
выражение, которое регулирует окончание выполнения цикла. Если результат выражения будет равен false, циклfor
прервется.increment
— выражение, которое исполняется после каждой итерации цикла. Чаще всего в данном выражении происходит инкрементирование или декрементирование переменной счетчика.statement(s)
— тело цикла.
initialization
, termination
, increment
опциональны. Если опустить каждое из них, мы получим бесконечный цикл:
// бесконечный цикл
for ( ; ; ) {
// код тела цикла
}
Пример цикла for
:
public class ForExample {
public static void main(String[] args) {
for (int i = 1; i < 6; i++) {
System.out.println("Строка №" + i);
}
}
}
Вывод:
Строка №1
Строка №2
Строка №3
Строка №4
Строка №5
Практикум по циклу for представлен на четвертом уровне курса JavaRush.
Цикл for each
Этот цикл Java — разновидность циклаfor
для итерации коллекций и массивов.
Структура for each
выглядит так:
for (Type var : vars) {
statement(s)
}
Здесь:
vars
— переменная, существующий список или массивType var
— определение новой переменной того же типа (Type
), что и коллекцияvars
.
public class ForExample {
public static void main(String[] args) {
String[] daysOfWeek =
{ "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье" };
for (String dayOfWeek : daysOfWeek) {
System.out.println(dayOfWeek);
}
}
}
Циклы Java изучаются на курсе JavaRush на четвертом уровне квеста Java Syntax. Попробуйте свои силы в решении задач по этой теме :)

ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ