Java for-each Loop

In this tutorial, we will learn about the Java for-each loop and its difference with for loop with the help of examples.

In Java, the for-each loop is used to iterate through elements of arrays and collections (like ArrayList). It is also known as the enhanced for loop.

for-each Loop Syntax

The syntax of the Java for-each loop is:

for(dataType item : array) {
    ...
}

Here,

  • array - an array or a collection
  • item - each item of array/collection is assigned to this variable
  • dataType - the data type of the array/collection

Example 1: Print Array Elements

Input

// print array elements

class Main {
  public static void main(String[] args) {

    // create an array
    int[] numbers = {3, 9, 5, -5};

    // for each loop
    for (int number: numbers) {
      System.out.println(number);
    }
  }
}

Output

3
9
5
-5

Here, we have used the for-each loop to print each element of the numbers array one by one.

  • In the first iteration, the item will be 3.
  • In the second iteration, the item will be 9.
  • In the third iteration, the item will be 5.
  • In the fourth iteration, the item will be -5.

Example 2: Sum of Array Elements

Input

// Calculate the sum of all elements of an array

class Main {
 public static void main(String[] args) {

   // an array of numbers
   int[] numbers = {3, 4, 5, -5, 0, 12};
   int sum = 0;

   // iterating through each element of the array
   for (int number: numbers) {
     sum += number;
   }

   System.out.println("Sum = " + sum);
 }
}

Output:

Sum = 19

In the above program, the execution of the for-each loop looks as:

IterationVariables
1number = 3 sum = 0 + 3 = 3
2number = 4 sum = 3 + 4 = 7
3number = 5 sum = 7 + 5 = 12
4number = -5 sum = 12 + (-5) = 7
5number = 0 sum = 7 + 0 = 7
6number = 12 sum = 7 + 12 = 19

As we can see, we have added each element of the numbers array to the sum variable in each iteration of the loop.

for loop Vs for-each loop

Let’s see how a for-each loop is different from a regular Java for loop.

1. Using for loop

Input

class Main {
 public static void main(String[] args) {

   char[] vowels = {'a', 'e', 'i', 'o', 'u'};

   // iterating through an array using a for loop
   for (int i = 0; i < vowels.length; ++ i) {
     System.out.println(vowels[i]);
   }
 }
}

Output:

a
e
i
o
u

2. Using for-each Loop

Input

class Main {
 public static void main(String[] args) {

   char[] vowels = {'a', 'e', 'i', 'o', 'u'};

   // iterating through an array using the for-each loop
   for (char item: vowels) {
     System.out.println(item);
   }
 }
}

Output:

a
e
i
o
u

Here, the output of both programs is the same. However, the for-each loop is easier to write and understand.

This is why the for-each loop is preferred over the for loop when working with arrays and collections.