English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массив

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений Java

Java Список (List)

Java Queue (очередь)

Java Map-коллекция

Java Set-коллекция

Java Вход/Выход (I/O)

Java Reader/Writer

Другие темы Java

Цикл for-each в Java (пробег)

В этом руководстве мы будем изучать с помощью примеров другую форму цикла for в Java, известную как улучшенный цикл for или цикл for-each.

В Java, при обработке массивов и коллекций, мы можем использовать улучшенный цикл for. Его также называют циклом for-each. Это потому, что цикл перебирает каждый элемент массива или коллекции.

Прежде чем понять цикл for-each, убедитесь, что вы понимаете:

Разница между циклом for и циклом for-each

Почему при обработке массивов предпочтительнее использовать цикл for-each, а не цикл for, посмотрим на следующий пример.

В этом примере показано, как использовать стандартный цикл for для遍жения элементов массива.

class ForLoop {
    public static void main(String[] args) {
      
        char[] vowels = {'a', 'e', 'i', 'o', 'u'};
        for (int i = 0; i < vowels.length; ++i) {
            System.out.println(vowels[i]);
        }
    }
}

вывод:

a
e
i
o
u

Теперь мы выполним ту же задачу с помощью цикла for-each.

class AssignmentOperator {
   public static void main(String[] args) {
      
      char[] vowels = {'a', 'e', 'i', 'o', 'u'};
      // foreach цикл
      for (char item: vowels) {
         System.out.println(item);
      }
   }
}

вывод:

a
e
i
o
u

Здесь мы можем видеть, что вывод двух программ одинаковый.

Когда мы внимательно анализируем эти два программы, мы можем заметить, что цикл for-each легче пишется и делает наш код более читаемым. Вот почему он называется улучшенным циклом for.

Таким образом, рекомендуется использовать улучшенный цикл for как можно чаще.

Цикл for-each Java

Давайте сначала рассмотрим синтаксис цикла for-each:

for(data_type item : collections) {
    ...
}

Здесь,

  • collection - набор или массив, который нужно пройтись.

  • item - отдельный элемент в наборе.

Как работает цикл for-each?

Для каждого итерации выполняется цикл for-each, именно так работает цикл for-each в Java.

  • итерация - перебирается каждый элемент в заданном наборе или массиве (collections)

  • хранится - каждый элемент в переменной (item)

  • иПовторяетсяОсновное тело цикла.

Давайте разберем это на конкретном примере.

Пример: цикл for-each

Ниже приведена программа, которая вычисляет сумму всех элементов целочисленного массива.

class EnhancedForLoop {
    public static void main(String[] args) {
      
        int[] numbers = {3, 4, 5, -5, 0, 12};
        int sum = 0;
      
        for (int number: numbers) {
            sum += number;
        }
      
        System.out.println("Sum = " + sum);
    }
}

вывод:

Sum = 19

В上面的 программе, выполнение foreach-цикла таково:

итерациязначение
1when number = 3, sum = 0 + 3 = 3
2when number = 4, sum = 3 + 4 = 7
3when number = 5, sum = 7 + 5 = 12
4when number = -5, sum = 12 + (-5) = 7
5when number = 0, sum = 7 + 0 = 7
6when number = 12, sum = 7 + 12 = 19

Вы можете видеть foreach-цикл в каждом итерации

  • пройти через каждый элемент массива numbers

  • сохранить его в переменной number

  • и выполнить的主体, и добавить number в переменную sum, в конце концов, получить общее количество (sum)