Руководство по циклам Java
1. обзор
В этой статье мы рассмотрим основной аспект языка Java - многократное выполнение оператора или группы операторов - с использованием циклов.
2. Введение в циклы
В языках программированияlooping is a feature which facilitates the execution of a set of instructions until the controlling Boolean-expression evaluates to false.
Java предоставляет различные типы циклов, чтобы удовлетворить любые потребности программирования. Каждый цикл имеет свое собственное назначение и подходящий вариант использования.
Вот типы циклов, которые мы можем найти в Java:
-
Простой циклfor
-
Улучшенный циклfor-each
-
While цикл
-
Do-While цикл
3. Простой циклfor
Циклfor - это управляющая структура, которая позволяет нам повторять определенные операции, увеличивая и оценивая счетчик цикла.
Перед первой итерацией счетчик цикла инициализируется, затем выполняется оценка условия, за которой следует определение шага (обычно простое увеличение).
Синтаксис циклаfor:
for (initialization; Boolean-expression; step)
statement;
Давайте посмотрим на это на простом примере:
for (int i = 0; i < 5; i++) {
System.out.println("Simple for loop: i = " + i);
}
initialization,Boolean-expression, иstep, используемые в оператореfor, - этоoptional. Вот пример цикла forinfinite:
for ( ; ; ) {
// Infinite for loop
}
3.1. Помеченныеfor петли
Мы также можем иметь помеченныеfor петли. Это полезно, если у нас есть вложенные циклы for, чтобы мы моглиbreak /continue из определенного циклаfor:
aa: for (int i = 1; i <= 3; i++) {
if (i == 1)
continue;
bb: for (int j = 1; j <= 3; j++) {
if (i == 2 && j == 2) {
break aa;
}
System.out.println(i + " " + j);
}
}
4. Расширенный циклfor
Начиная с Java 5, у нас есть второй вид циклаfor, называемыйenhanced forwhich, который упрощает итерацию по всем элементам в массиве или коллекции.
Синтаксис циклаenhanced for:
for(Type item : items)
statement;
Поскольку этот цикл упрощен по сравнению со стандартным циклом for, нам нужно объявить только две вещи при инициализации цикла:
-
Дескриптор элемента, который мы сейчас перебираем
-
Исходный массив / коллекция, которую мы повторяем
Следовательно, можно сказать, что:For each element in items, assign the element to the item variable and run the body of the loop.
Давайте посмотрим на простой пример:
int[] intArr = { 0,1,2,3,4 };
for (int num : intArr) {
System.out.println("Enhanced for-each loop: i = " + num);
}
Мы можем использовать его для перебора различных структур данных Java:
Учитывая объектList<String> list, мы можем выполнить его итерацию:
for (String item : list) {
System.out.println(item);
}
Мы можем аналогичным образом перебратьSet<String> set:
for (String item : set) {
System.out.println(item);
}
И, учитываяMap<String,Integer> map, мы также можем перебрать его:
for (Entry entry : map.entrySet()) {
System.out.println(
"Key: " + entry.getKey() +
" - " +
"Value: " + entry.getValue());
}
4.1. Iterable.forEach()с
Начиная с Java 8, мы можем использовать циклы for-each немного по-другому. Теперь у нас есть специальный методforEach() в интерфейсеIterable, который принимает лямбда-выражение, представляющее действие, которое мы хотим выполнить.
Внутренне это просто делегирует работу стандартному циклу:
default void forEach(Consumer super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}
Давайте посмотрим на пример:
List names = new ArrayList<>();
names.add("Larry");
names.add("Steve");
names.add("James");
names.add("Conan");
names.add("Ellen");
names.forEach(name -> System.out.println(name));
5. While Цикл
Циклwhile - это самый фундаментальный оператор цикла Java. Он повторяет оператор или блок операторовwhile, которым его управляющийBoolean-expression истинен.
Синтаксис циклаwhile:
while (Boolean-expression)
statement;
The loop’s Boolean-expression is evaluated before the first iteration of the loop - это означает, что если условие оценивается как ложное, цикл может не выполняться ни разу.
Давайте посмотрим на простой пример:
int i = 0;
while (i < 5) {
System.out.println("While loop: i = " + i);
}
6. Do-While Цикл
Цикл do-while работает так же, как цикл while, за исключением того факта, чтоthe first condition evaluation happens after the first iteration of the loop:
do {
statement;
} while (Boolean-expression);
Давайте посмотрим на простой пример:
int i = 0;
do {
System.out.println("Do-While loop: i = " + i++);
} while (i < 5);
7. Заключение
В этом кратком руководстве мы показали различные типы циклов, которые доступны в языке программирования Java.
Мы также видели, как каждый цикл служит определенной цели с учетом подходящего варианта использования. Мы обсудили обстоятельства, которые подходят для данной реализации цикла.
Как всегда, примеры можно найтиover on GitHub.