×

For Loop Program in Java

For Loop Program in Java

The for-loop program in Java is written when we want a particular set of statements to be executed repeatedly until the given criteria/ condition is met.  The general syntax of the for-loop is:

for(initialization; condition; decrement/increment)
{
            //body
            Statements;
}

Initialization: This block serves the purpose of initializing the variables. The initialization part is executed at the beginning and only once. The initialized value will be changed after each iteration.

Condition: After the initialization, the control comes to the condition. The life of a for-loop depends on the condition. The for-loop will be executed till the condition evaluates true. All the statements written in the condition part must be of the Boolean nature. The condition is evaluated before the control shifts to the body of a for-loop.

Decrement/ Increment:  This portion of a for-loop is optional. We can even shove the statements written in this portion inside the body of the for-loop. The part of the for-loop is executed after the body of the loop is executed.

Body: The control will only reach the body part when the condition is evaluated true. Different types of work are done in this part of the loop, like calling a method, doing some arithmetic operation, printing sentences on the console, etc.

The curly braces ({}) are only mandatory when there is more than one statement in the body of the for loop. For only one statement, one may or may not drop these curly braces. Let’s understand the working of Java for loop through a Java program.

Filename: ForLoopExample.java

public class ForLoopExample
{             
public static void main(String argvs[])
{
               // Loop will iterate 10 times
               for(int i = 0; i < 10; i++)   
                               System.out.println("We are learning about Java for-loop.");
}
}

Output:

We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.

Explanation: Observe there is only one statement; therefore, we have easily omitted the curly braces ({}). In the for-loop, we have:

Initialization: In our case, we are initializing a variable i to 0. Hence, the iteration begins from 0.  

Condition: In the above program, we have checked the condition i < 10. This means the loop will be executed till the variable i is less than 10. The default value of the condition is true, i.e., if we specify nothing in the condition part, the compiler will assume the condition is true.

Increment/ Decrement: In our case, we have used increment. After each iteration, the value of i is incremented by 1. It increases the value until the condition does not results false.   

Let’s talk about iterations.

Iteration1: In the first iteration, the first step will be to execute the initialization expression. We have int i = 0; Thus, the variable i will get the value 0, and then the control shifts to the condition where we encounter i < 10, i.e., 0 < 10, which evaluates to true. The control goes to the body of the loop and prints the statement on the console. Finally, the increment/ decrement statement is evaluated, which is i++. After the increment operation, the variable i gets incremented from 0 to 1.

Iteration2: In the second iteration, the control moves to the condition expression i < 10, i.e., 1 < 10, which is again true. The control goes to the body of the loop and prints the statement on the console. Finally, the increment operation updates the variable i from 1 to 2.

Similarly, we can explain other iterations too. At last, the variable i will be 10, and the condition 10 < 10 becomes false, and the loop will terminate. Thus, there will be 10 iterations in the above-written for-loop.

Another Way to Write Java for Loop

We have already discussed that increment/ decrement statements are optional and can be shoved in the body of the loop. Thus, we can re-write the above code as:

Filename: ForLoopExample1.java

public class ForLoopExample1
{             
public static void main(String argvs[])
{
               // Loop iterates 10 times
               for(int i = 0; i < 10; )   
               {
                               System.out.println("We are learning about Java for-loop.");
                               i++; // Increment expression inside the body of the loop
               }
}
}

Output:

We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.

Explanation: Observe that, we have more than one statement inside the body of the loop. Therefore, curly braces are mandatory this time. The only difference in the code is the increment expression is not written immediately after the condition. It is inside the body. However, logically speaking, nothing has changed as we are incrementing i only by 1. Hence, the iteration will be 10 times, and output will also remain the same.

Infinite for Loop

The above program can also be written as follows if we want to execute it infinite times.

Filename: ForLoopExample2.java

public class ForLoopExample2
{             
public static void main(String argvs[])
{
               // Loop will iterate uncountable times
               for(int i=0; true; )   
               {
                               System.out.println("We are learning about Java for-loop.");
                               i++;
               }
}
}

Output:

We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
…
…
…

Explanation: We already know that the life of a for-loop depends on the condition. In the above program, we have specifically mentioned the condition true. Hence, the condition is true, always resulting in infinite iterations. The increment and initialization expressions are doing nothing at all. Therefore, we can easily drop them. Also, we can drop the keyword true, mentioned in the condition. This is because when we mention nothing in the condition, it is evaluated as true by the Java compiler. Thus, the above program can be re-written as:

Filename: ForLoopExample3.java

public class ForLoopExample3
{             
public static void main(String argvs[])
{
               // Nothing in the condition part will be evaluated as true.
               for(; ; )   
               {
                               System.out.println("We are learning about Java for-loop.");
               }
}
}

Output:

We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
We are learning about Java for-loop.
…
…
…

Enhanced Java for Loop | Java For-Each Loop

Java for-each loop is the advanced version of Java for-loop. Java for-each loop was introduced in J2SE 5.0. It is mainly used to iterate over arrays or lists. The main advantages of the for-each loop are that it makes code less verbose and is less prone to bug. However, the control we have over the normal for-loop is absent in the case of a for-each loop. For example, we can traverse an array in reverse order using a for-loop but cannot do so using a for-each loop. Also, a for-each loop iterates over each element of the array. It can not skip elements. But we can skip elements using a normal for-loop. In spite of these disadvantages, it is still advised to use a for-each loop. This is because the for-each loop is easy to understand and less wordy.

The following example illustrates the working of the for-each loop.

Filename: ForLoopExample4.java

public class ForLoopExample4
{             
public static void main(String argvs[])
{
               // Input array
               int arr[] = {6,7 ,9, 11, 35, 67, 89, 65, 1, 4, 8};
               //Iterating over every element of the input array
               for(int i : arr)
                   System.out.println(i);
}
}

Output:

6
7
9
11
35
67
89
65
1
4
8

Explanation: The variable i is iterating over each and every element of the input array. Therefore, the data type of the variable i must match with the data type of the input array elements; otherwise, the compiler will punish by giving the compilation error.

Let’s learn how we can use a for-each loop in lists.

Filename: ForLoopExample5.java

// Importing the class ArrayList
import java.util.ArrayList;
public class ForLoopExample5
{             
public static void main(String argvs[])
{
               //Creating an object of the array list of type string.
               ArrayList<String> al = new ArrayList();
               // Add elements to the array list
               al.add("Mango");
               al.add("Papaya");
               al.add("Guava");
               al.add("Banana");
               al.add("Pineapple");
               al.add("Apple");
               al.add("Gooseberry");
               al.add("Plum");
               al.add("Sapodilla");
               // Iterating over every element of the list
               for(String i : al)
                               System.out.println(i);
}
}

Output:

Mango
Papaya
Guava
Banana
Pineapple
Apple
Gooseberry
Plum
Sapodilla

Explanation: Notice how easily we can traverse a list using the for-each loop. Had it been a normal for-loop, we would have to use the get() method to access the value from the list at a particular index. Also, there would be a risk of getting an exception like IndexOutOfBoundsException in case of normal for-loop. See the following code.

Filename: ForLoopExample6.java

public class ForLoopExample6
{             
public static void main(String argvs[])
{
               //Creating an object of the array list of type string.
               ArrayList<String> al = new ArrayList();
               // Add elements to the array list
               al.add("Mango");
               al.add("Papaya");
               al.add("Guava");
               al.add("Banana");
               al.add("Pineapple");
               al.add("Apple");
               al.add("Gooseberry");
               al.add("Plum");
               al.add("Sapodilla");
               for(int i = 0; i < al.size(); i++)
                               // Using get() method to access the value.
                               System.out.println(al.get(i+1));
}
}

Output:

Mango
Papaya
Guava
Banana
Pineapple
Apple
Gooseberry
Plum
Sapodilla

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index 9 out of bounds for length 9

               at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)

               at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)

               at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)

               at java.base/java.util.Objects.checkIndex(Objects.java:372)

               at java.base/java.util.ArrayList.get(ArrayList.java:458)

               at ForLoopExample6.main(ForLoopExample6.java:20)

Therefore, care must be taken while working with normal for-loop. We never get such exceptions while working with the for-each loop. This is because the for-each loop does not use an index to access the value.


Related Topics

Davis Staircase Problem in Java

Davis has several stairs in his home and prefers to ascend one, two, or three steps at a time. As a highly clever youngster, he thinks about how many ways...

3 minutes read.

Java Single Linkedlist

Like arrays, linked lists are a type of linear data structure. Unlike arrays, which store each element in the same location, linked lists employ pointers to connect the elements together. In...

25 minutes read.

How to Convert double to int in Java

The double is a larger data type than int. When we assign a larger type value to a variable of smaller type, then we need to perform the explicit conversion....

2 minutes read.

Java Integer compareTo() method

The compareTo() method of Integer class compares two Integer objects numerically. Syntax public static int compareTo(int anotherInteger) Parameters The parameter ‘anotherInteger’ represents the Integer to be compared. Specified by This method is specified by compareTo in...

2 minutes read.

Sparse Numbers in Java

In this section, we will be very well acknowledged about the sparse numbers in Java, how a number can be verified if it is a sparse number or not. Sparse Numbers Any...

3 minutes read.

Binary Search Java

Binary search is a search mechanism for key elements from the given List/Array. In Binary search, the search mechanism is followed by dividing the array into parts; hence the search...

3 minutes read.

Empty Statement in Java

The three sorts of statements in Java are control, expression, and declaration statements. Additionally, another statement is referred to as an empty statement. In this section, we will discuss about...

4 minutes read.

Shopping Bill in Java

Java Shopping Bill Here in this program, we are about to create a JAVA class called Products which will have some properties or attributes like prod_name (Product Name ), qty (quantity),...

4 minutes read.

Alice and Bob Problem Java

Alice and Bob were two friends who liked to play games. Both together found a game, which has the description below. The game begins with an integer num, used to create...

2 minutes read.

Java 13 New Features

The Java SE Platform's JDK 13 version is an open-source reference implementation defined by the Java Community's JSR 388 Process. The necessary modifications made in Java 13 are listed below....

6 minutes read.

Java Font

The font is a Java class that is a part of java.awt package. The Serializable interface is implemented by it. The direct recognized child of a Java Font class is...

8 minutes read.

JDBC vs ODBC

Difference Between JDBC and ODBC ODBC: ODBC (Open Database Connectivity) is the accepted method for accessing databases among organisations and programmers. A database is linked to other programmes, such as word processors, spreadsheets,...

4 minutes read.

Split String into String Array in Java

The String split() technique returns a variety of divided strings after the strategy parts the given String around matches of a given normal articulation containing the delimiters. The ordinary articulation...

4 minutes read.

Figurate Number in Java

There have been several uses for figurate or figural numerals throughout history. A number that may be expressed by regular, distinct geometric shapes with spaced evenly points is referred to...

4 minutes read.

Prepared statement in Java

Prepared statement: A prepared statement is a statement that is pre-compiled SQL statement, and it is a sub-interface of a statement. Compared to other statement objects in java, Prepared Statement objects have...

3 minutes read.

Java Future Example

Future is an interface in the Java language that is a part of  java.util.concurrent package. It serves as a symbol for the output of an asynchronous computation. The interface offers ways to determine whether a computation has finished,  wait for it to finish, and receive its result. Once the task or calculation is finished, it cannot be undone. A Future interface offers ways to determine whether the computation is finished, to wait for it to finish, and to receive the computation's results. When the computation...

3 minutes read.

Java Full Stack

A person who can create both the front end and back end of an application is a full-stack developer. In essence, the term "Java full-stack" refers to a web developer...

9 minutes read.

How to create an array in Java

An array is a linear data structure stores a collection of fixed number ofelements of similar type. The size of an array is specified when it is created. The array...

14 minutes read.

Java Integer numberOfTrailingZeros() method

The numberOfTrailingZeros()  method of Java Integer class returns the total number of zero bits following the lowest-order one-bit in the 2’s complement binary representation of the specified int value. Syntax public static...

1 minute read.

Java import packages

To know about the importing the packages of Java, we need to understand about how to packages work. Packages The package in Java is a collection of Classes and Interfaces. The packages...

3 minutes read.