Рубрики
Без рубрики

Java Для Цикла

Краткое и практическое руководство по Java-циклам

Автор оригинала: baeldung.

1. Обзор

В этой статье мы рассмотрим основной аспект языка Java – выполнение оператора или группы операторов многократно с использованием цикла for .

2. Простой для цикла

A для цикл-это структура управления, которая позволяет нам повторять определенные операции путем увеличения и вычисления счетчика циклов.

Перед первой итерацией счетчик циклов инициализируется, затем выполняется оценка условия с последующим определением шага (обычно простым приращением).

Синтаксис цикла 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 , являются необязательными. Вот пример цикла infinite for:

for ( ; ; ) {
    // Infinite for loop
}

2.1. Маркировка для петель

Мы также можем иметь помеченные для циклов. Это полезно, если у нас есть вложенные циклы for, чтобы мы могли прервать /продолжить из определенного цикла 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);
    }
}

3. Увеличенный для петли

Начиная с Java 5, у нас есть второй вид цикла for , называемый enhanced for , который облегчает итерацию по всем элементам массива или коллекции.

Синтаксис цикла enhanced for таков:

for(Type item : items)
  statement;

Поскольку этот цикл упрощен по сравнению со стандартным циклом for, нам нужно объявить только две вещи при инициализации цикла:

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

Поэтому мы можем сказать, что: Для каждого элемента в items, назначьте элемент переменной item и запустите тело цикла .

Давайте рассмотрим простой пример:

int[] intArr = { 0,1,2,3,4 }; 
for (int num : intArr) {
    System.out.println("Enhanced for-each loop: i = " + num);
}

Мы можем использовать его для итерации по различным структурам данных Java:

Задан объект List list – мы можем его итерировать:

for (String item : list) {
    System.out.println(item);
}

Аналогично мы можем перебирать Set set :

for (String item : set) {
    System.out.println(item);
}

И, учитывая Map map , мы также можем перебирать его:

for (Entry entry : map.entrySet()) {
    System.out.println(
      "Key: " + entry.getKey() + 
      " - " + 
      "Value: " + entry.getValue());
}

3.1. Повторяемость.инструкция 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));

4. Заключение

В этом кратком руководстве мы изучили цикл Java for .

Как всегда, примеры можно найти на GitHub .