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.
The syntax of the Java for-each loop is:
for(dataType item : array) {
...
}
Here,
// 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);
}
}
}
3
9
5
-5
Here, we have used the for-each loop to print each element of the numbers array one by one.
// 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);
}
}
Sum = 19
In the above program, the execution of the for-each loop looks as:
Iteration | Variables |
---|---|
1 | number = 3 sum = 0 + 3 = 3 |
2 | number = 4 sum = 3 + 4 = 7 |
3 | number = 5 sum = 7 + 5 = 12 |
4 | number = -5 sum = 12 + (-5) = 7 |
5 | number = 0 sum = 7 + 0 = 7 |
6 | number = 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.
Let’s see how a for-each loop is different from a regular Java for loop.
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]);
}
}
}
a
e
i
o
u
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);
}
}
}
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.