Difference between For and For-each Loop in Java

A loop is a control statement which executes a particular block of code repeatedly until a given condition becomes false. There are various types of loops such as while, do-while and for loop.

In this article, we will be focusing on for loop and its enhanced version.

for loop and for each loop in java

If you’re looking for forEach method introduced in Java 8: ForEach Method in Java 8

Difference between For and For-each Loop in Java

For LoopForeach Loop
It uses an index of an element to fetch data from an arrayIt uses an iteration variable to automatically fetch data from an array
Termination of this traditional loop is controlled by loop condition. Therefore, For loop executes repeatedly until the given condition turns out to be falseNo such provision is provided in foreach, instead break statement can be used to terminate the execution of the loop early, otherwise, it executes until the last element gets evaluated
It requires loop counter, initial and end values, in order to iterate through all the elements of an arrayIt automates the iteration by using the iteration variable which stores one element each time
When we iterate through using traditional for loop we can manipulate the actual data of an arrayThe iteration variable in foreach is read-only. It means changes made on iteration value would not affect the actual data of the collection or array
It was introduced in Java 1It was introduced back in Java 5
It has the flexibility of the iterating an array whether it is increasing order or decreasing orderIt can iterate only in a linear manner from initial to end element, but not vice versa
Syntax:
for( initialization; condition; iteration)
{
// body
}
Syntax:
for(type var_name: collection)
{
// body
}
It works only on indexable objects where random access of elements are allowedIt works on all indexable objects even when random access of an individual element is not allowed

Traditional For loop in Java

It is generally known as a traditional for loop.
In Java, “for loop” is used to execute a particular block of code a fixed number of times. In other words, when the number of iterations are already known, then it is typically used.

It provides compact looping structure as initialization, condition and iteration are put together within a single statement.
Like C++, a simple for loop comprises three parts, initialization, condition and increment/decrement

1. Initialization: In this, a counter or control variable is assigned with some value and acts as a base for the loop counter
2. Condition: It is a relational or logical expression that returns a boolean value, true or false. It is evaluated after each iteration and continues execution until the condition turns out to be false.
3. Increment/ decrement: It updates with each iteration with incremented or decremented values

.

Syntax : 

for(initialization;condition; updatableExp){
//loop body
}

For each loop in Java

For each is the enhanced for loop which was introduced in Java 5. It is used to iterate through a collection of objects.

Unlike traditional for loop, the enhanced loop isn’t declared with control variable, condition, and increment/decrement, instead, an element of the same array or list type needs to be declared with a colon, is followed by the list or array name.

It executes until all the elements in the list are traversed.

Syntax:

for (type element : list/array)
{
// loop body
}

Java program to show the working of for loop

Program:

public class ForLoopExample {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList();
        list.add(5);
        list.add(9);
        list.add(7);
        list.add(65);
        list.add(4);
        list.add(0);

        for(int i=0;i<list.size();i++)
        {
            System.out.println("List items : "+list.get(i));
        }
    }

}

Output:

List items : 5
List items : 9
List items : 7
List items : 65
List items : 4
List items : 0

Java program to show the working of for-each (enhanced for loop ) loop

public class ForLoopExample {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList();
        list.add(5);
        list.add(9);
        list.add(7);
        list.add(65);
        list.add(4);
        list.add(0);

        for (Integer value: list
             ) {
            System.out.println("Items : "+value);
        }
    }

}

Output:

Items : 5
Items : 9
Items : 7
Items : 65
Items : 4
Items : 0

Leave a Reply