Цикл For-Each в Java - Использование различных условий - Примеры

Содержание:

Anonim

Введение в цикл For-Each в Java

Для каждого цикла был введен в Java, начиная с JDK 5. Он предназначен для последовательной итерации всех элементов коллекции или массива. Он также есть в других языках, таких как C #, где он использует ключевое слово for-each. Однако Java использует ключевое слово «for» только для реализации цикла for-each в отличие от C #, но его синтаксис отличается от обычного цикла for. Этот цикл for-each также известен как расширенный цикл for в Java.

Синтаксис

for(type iter_var : Collection) statement_block

Объяснение каждого из терминов, использованных выше, заключается в следующем:

  1. «тип» указывает тип данных объектов
  2. 'iter_var' указывает имя переменной итерации, в которой хранится каждое значение коллекции, пока мы выполняем цикл.
  3. «Коллекция» определяет коллекцию или массив, через который мы хотим выполнить итерацию.
  4. «оператор-блок» - это набор операторов, которые мы хотим выполнить для каждой итерации цикла.

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

Как вы заметили, между циклом for и for-each есть некоторые тонкие различия. Цикл for требует, чтобы количество итераций было указано заранее. Однако это не относится к циклу for-each, поскольку цикл повторяется от первого элемента к последнему элементу Collection / array и не требует указания количества итераций.

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

Примеры

Для цикла

Давайте найдем средний возраст группы людей, использующих цикл:

Код

public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
int sum = 0;
System.out.print("Ages of the group are : "); for (int i = 0; i < 10 ; i++)
(
System.out.print(ages(i)+" "); sum += ages(i);
)
System.out.println("\n Average age of the group = " + (sum/10));
)
)

Выход:

Для каждого цикла

Чтобы определить средний возраст группы людей, использующих цикл for-each:

Код

public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
int sum = 0;
System.out.print("Ages of the group are : "); for (int x : ages)
(
System.out.print(x+" "); sum += x;
)
System.out.println("\n Average age of the group = " + (sum/10));
)
)

Выход:

Выходные данные одинаковы с использованием обоих циклов, как видно из приведенных выше рисунков.

Цикл Foreach с использованием оператора Break

Можно уменьшить количество итераций цикла for-each с помощью оператора break. Например, если мы хотим найти сумму только первых 5 элементов, мы можем использовать оператор break следующим образом:

Код

public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
int ctr = 0, sum = 0;
System.out.print("Ages of the group are : "); for (int x : ages)
(
System.out.print(x+" ");
)
for (int x : ages)
(
if (ctr == 5) break; sum += x;
ctr += 1;
)
System.out.println("\nSum of age of first 5 people of the group = " + sum);
)
)

Выход:

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

Необходимо соблюдать осторожность при использовании для каждого цикла, так как переменная итерации временно сохраняет значение элемента массива, поскольку он «только для чтения», а изменение его значения не изменяет исходный массив. Это противоречит циклу, когда изменение элемента изменяет исходный массив.

Давайте рассмотрим пример, в котором мы добавляем 5 к каждому элементу массива. Мы можем определить разницу в выводе в следующем примере кода:

Для цикла с другим условием

Код

public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
System.out.print("Elements of the array are : "); for (int i = 0; i < 10; i++)
(
System.out.print(ages(i)+" "); ages(i)+= 5;
)
System.out.print("\nNew elements of the array are : "); for (int i = 0; i < 10; i++)
(
System.out.print(ages(i)+" ");
)
)
)

Выход:

Вывод цикла for, показывающий обновление исходного массива

Цикл Foreach с другим условием

Код

public class Main
(
public static void main(String() args) (
int ages() = (15, 18, 16, 17, 14, 12, 13, 20, 22, 25);
System.out.print("Elements of the array are : "); for (int x : ages)
(
System.out.print(x+" "); x += 5;
)
System.out.print("\nNew elements of the array are : "); for (int x : ages)
(
System.out.print(x+" ");
)
)
)

Выход:

Выходные данные цикла for-each показывают отсутствие обновления исходного массива

Что нужно помнить о цикле For-Each в Java

  1. Цикл For-Each в Java используется для перебора элементов массива / коллекции в последовательности.
  2. Цикл For-Each в Java использует переменную итерации для итерации по коллекции или массиву элементов.
  3. Изменение переменной итерации не приводит к изменению исходного массива / коллекции, поскольку она доступна только для чтения.
  4. Тип в цикле for-each должен соответствовать типу исходных элементов массива / коллекции.
  5. Цикл Foreach не требует указания количества итераций, поскольку он повторяется по всем элементам коллекции.
  6. Можно остановить цикл for-each с помощью оператора break.

Рекомендуемые статьи

Это руководство к циклу For-Each в Java. Здесь мы обсуждаем цикл For-Each в java с его реализацией кода по-разному, то есть с оператором break и с различными условиями. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. Распечатать массив в Java
  2. Циклы в программировании на Java
  3. Пока цикл в Java
  4. 3D-массивы в Java
  5. Инструменты развертывания Java
  6. 3D-массивы в C ++
  7. Для цикла в C
  8. Массивы в программировании на Java