While loop in Java

In our daily lives, we often encounter problems that require performing repetitive actions to arrive at a solution. Similarly, in programming, we utilize repeated actions to tackle problems efficiently. Let's consider an example to illustrate this concept:

Suppose we want to develop a computer program that calculates the sum of 1000 numbers provided by a user. To solve this problem, we have two options: sequential processing or utilizing repetition through a loop.

The sequential approach would involve individually adding each number provided by the user to a running total. This method would require writing repetitive code statements to handle each number, leading to lengthy and less maintainable code.

On the other hand, we can employ a loop structure to streamline the solution. By using a loop, such as a for loop, we can iterate through the user-provided numbers and repeatedly add them to a running total. Both cases are shown below:

Using first option, perform task sequentially
Accept first number from user Add it to the total Accept second number from user Add it to the total Accept third number from user Add it to the total ...... ...... ...... Accept 999th number from user Add it to the total Accept 1000th number from user Add it to the total
Using second option, Perform Task using Loop
LoopStatement(1000 times){ Accept number from user Add it to the total }

Here you can see the repetition in loop takes few lines compare to sequential solution to accomplish a same task. From the above example you can see the advantages of using repetition in loop. Java language provides different types of loop like for loop, while loop, do..while loop. Here we discuss the while loop and do..while loop.

while loop

The while loop in Java is a control flow statement that repeatedly executes a block of code as long as a given condition remains true. Its structure consists of a condition and a loop body. The loop body is executed only if the condition evaluates to true.

Syntax:
while (condition){ statements; }

The expression (condition) in the while loop is evaluated, and if the expression (condition) is true , the code within the block is executed. This repeats until the expression(condition) becomes false . The expression(condition) should be updated during the repetitions, otherwise the program will never "break out" of while and lead to an infinite loop.

Example:
class TestClass { public static void main (String[] args) { int cnt = 1; while (cnt < = 5) { System.out.println("The value of cnt is : " + cnt); cnt = cnt + 1; } } }
Output:
The value of cnt is : 1 The value of cnt is : 2 The value of cnt is : 3 The value of cnt is : 4 The value of cnt is : 5

In the above program the loop will execute the code block 5 times. The first time the value of cnt is one, then its satisfy the condition cnt < =5. The the code block execute and update the value of cnt, that is cnt = cnt+1. This will repeated until the value of cnt=5 and then exit from the loop.

do...while loop

A do-while loop is similar to a while loop, but with one crucial difference: in a do-while loop, the loop body is executed first, and then the condition is evaluated. If the condition is true, the loop body will be executed again, and the process continues. If the condition is false, the loop terminates.

The primary advantage of a do-while loop is that it guarantees the execution of the block of code at least once, regardless of the condition. This characteristic is useful in situations where you need to ensure that a specific action is performed before evaluating the condition.

Syntax:
do { statements; } while (condition);
Example:
class TestClass { public static void main (String[] args) { boolean enter=false; do { System.out.println("Enter in do..while loop"); }while (enter); } }

In the above code, boolean enter=false;. Even the value of enter is false, the code block executed at least once. So the message displayed one time. If you give the condition to a while loop it will exit without showing the message, because the condition is false and never go inside the code block.

boolean enter=false; while (enter){ System.out.println("Enter in do..while loop"); }

In the above case, the condition is false (enter=false) and the loop never execute.

Difference between a do-while loop and a while loop in Java

The main difference between a do-while loop and a while loop in Java is the evaluation of the loop condition.

In a do-while loop, the condition is evaluated at the end of the loop, after the loop body has been executed. This means that the statements within the do block are always executed at least once, regardless of the condition. The condition is checked only after the first iteration.

On the other hand, in a while loop, the condition is evaluated at the beginning of the loop, before executing the loop body. If the condition is false initially, the loop body will not be executed at all.

Here's a comparison between the two loop structures:

// do-while loop do { // Code to be executed } while (condition); // while loop while (condition) { // Code to be executed }

In a do-while loop, the loop body is executed first, and then the condition is evaluated. If the condition is true, the loop body is executed again, and the process continues. If the condition is false, the loop terminates.

In a while loop, the condition is evaluated at the beginning. If the condition is true, the loop body is executed. The loop continues as long as the condition remains true. If the condition is false initially, the loop body will not be executed at all.

The key distinction is that the do-while loop ensures that the loop body is executed at least once, whereas the while loop may skip the loop body entirely if the condition is false from the start.

Both loop structures have their use cases, and the choice between them depends on the specific requirements of the problem at hand. The do-while loop is particularly useful when you need to guarantee the execution of certain code before evaluating the condition.

Conclusion

Understanding the differences between do-while and while loops enables you to select the appropriate loop construct based on your programming needs and ensures the desired flow of execution in your Java programs.