Руководство по циклам Java

Руководство по циклам 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, нам нужно объявить только две вещи при инициализации цикла:

  1. Дескриптор элемента, который мы сейчас перебираем

  2. Исходный массив / коллекция, которую мы повторяем

Следовательно, можно сказать, что: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 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.