Do-While Loop in Java is another type of loop control statement. Similar to while loop which we learned in the previous tutorial, the do-while loop also executes a block of code based on the condition. The only difference is that Do-While Loop in Java executes the code block at least once since it checks the condition at the end of the loop.
Table of Contents
Do-While Loop in Java Syntax
do { //code //update counter }while(condition);
code – block of statements inside the java do-while loop
update counter – updating the value of the variable in the condition.
condition – the test expression or condition to validate for the java do-while loop to execute.
do-while loop flowchart
- When the execution control points to the
do
statement, it executes the code inside the loop first. - It then updates the counter variable value.
- At the end, when the control points to the
while
statement, it evaluates the condition. Since it checks the condition towards the end, the code inside the java do-while loop is executed at least once. - If the condition is true, it again proceeds with the loop execution until the condition returns false.
- When the condition is false, it exits the java do-while loop. Hence it is also called an exit control loop.
Simple do-while loop example
public class simpleDowhileloop { public static void main(String[] args) { int i=0; do { System.out.println("i: " + i); i++; }while(i<=5); } }
i: 0 i: 1 i: 2 i: 3 i: 4 i: 5
This is a simple example to demonstrate the working of a java do-while loop.
First, we declare an integer variable with value 0 (i=0).
Next, when the control points to the do statement, it starts the execution of the statements inside the do-while
loop. It prints the value i:0 and increments i value by 1.
Now, i=1. Then it checks the condition i<=5 since this condition is true, it continues the execution of the do-while
loop.
It repeats this process until i=5.
Now after it prints i:5, i value increments to i=6. At this stage, the condition i<=5 returns false and stops the execution of the do-while
loop.
Do-While Loop in Java with an array
We can use java do-while loop to retrieve array elements similar to a while
loop. Below is an example to retrieve individual array elements and then print the sum of all array elements.
public class doWhileLoopArray { public static void main(String[] args) { int[] numbers = {40,10,20,50,30}; int i=0,sum=0; do { System.out.println("Array element : " + numbers[i]); sum = sum + numbers[i]; i++; }while(i<numbers.length); System.out.println("Sum of array elements: " + sum); } }
Array element : 40 Array element : 10 Array element : 20 Array element : 50 Array element : 30 Sum of array elements: 150
First, we declare an array of integers variable numbers, counter variable i and variable sum to store the sum value. Inside do
loop, we can access the individual array elements using the counter variable. Since i=0, it retrieves the first element numbers[0] and stores in the sum variable. Next, increments i value and now i=1. Finally, checks the condition in the while
statement if i<array length. Here array length is 5. Hence this condition is true and continues the execution of do
loop. It continues this step until i=6 and when the condition returns false, exits the do-while
loop.
Infinite Do-While Loop in Java
Similar to while
loop, we can also have an infinite do-while
loop when we do not use the right condition or do not update the counter variable properly.
In the below example, it prints the statement infinitely until the user terminates the program. This is because the condition always returns a true value.
public class infiniteDowhileloop { public static void main(String[] args) { int i = 0; do { System.out.println("Infinite loop"); i++; }while(i>=0); } }
In the below example, it prints the statement infinitely since we are not updating the variable value anywhere within the loop. Hence the condition always returns a true value.
public class infiniteDowhileloop { public static void main(String[] args) { Boolean bFlag = true; do { System.out.println("Infinite loop"); }while(bFlag); } }
Difference between For, While and Do-While Loop
Now that we have learned about different loop statements, let us see the major differences between for, while and do-while loops.
For loop | while loop | do-while loop |
---|---|---|
we need to initialize the loop variable in for loop | we can initialize the loop variable before while loop | we can initialize the loop variable before do-while loop |
scope of loop variable is within the loop | scope of loop variable is not limited inside the loop and can be used outside as well. | scope of loop variable is not limited inside the loop and can be used outside as well. |
Checks the condition at the beginning of the loop | Checks the condition at the beginning of the loop | Checks the condition towards the end of the loop |
For loop might not execute even once if the condition is false at the start of execution itself | For loop might not execute even once if the condition is false at the start of execution itself | Executes the statements atleast once since we check the condition at the end |
for(initialization;condition,updatecounter) { //code } | while(condition) { //code //update counter } | do { //code //update counter }while(condition); |