Back to Java
2026-03-105 min read

Infinite do while Loop (Java)

Learn Infinite do while Loop (Java) step by step with clear examples and exercises.

Why This Matters

The do...while loop is an essential control structure in Java that allows for efficient programming. By ensuring a block of code executes at least once before checking a specified condition, it helps avoid common pitfalls like missing the first iteration when using traditional while loops. The do...while loop can be particularly useful when dealing with user input or initializing variables.

Prerequisites

Before diving into the do...while loop, you should have a solid understanding of:

  • Java syntax and basic data types
  • Control structures (if statements, switch cases)
  • Variables and their scopes
  • User input/output using Scanner and System.out.print() or System.out.println()
  • Basic concepts of loops, such as the for loop and traditional while loop

Additional Prerequisites

  • Understanding the concept of conditions and their role in controlling the flow of a program
  • Familiarity with Java exception handling to manage potential issues that may arise during user input

Core Concept

The do...while loop in Java is a control structure that allows you to repeatedly execute a block of code as long as a specified condition remains true. The basic syntax for a do...while loop is:

do {
// code to be executed
} while (condition);

The do...while loop ensures that the code block inside the loop will execute at least once before checking the condition. This can be particularly useful when dealing with user input or initializing variables.

How It Works

  1. The Java interpreter initializes the loop by executing the code block inside the do...while loop.
  2. After executing the code block, it checks the condition specified in the while clause.
  3. If the condition is true, the loop repeats and goes back to step 1; if the condition is false, the loop terminates, and control passes to the next statement following the do...while loop.

Example: Infinite do...while Loop

Scanner sc = new Scanner(System.in);
int num;

do {
System.out.print("Enter a number: ");
num = sc.nextInt();
} while (true); // This creates an infinite loop since the condition is always true

In this example, the loop will repeatedly prompt the user to enter a number indefinitely because the condition (true) never changes, resulting in an infinite loop.

Worked Example

Let's create a simple program that calculates the factorial of a given non-negative integer using a do...while loop:

import java.util.Scanner;

public class Factorial {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num, fact = 1;

do {
System.out.print("Enter a non-negative integer: ");
num = sc.nextInt();
} while (num < 0);

for (int i = 1; i <= num; ++i) {
fact *= i;
}

System.out.printf("Factorial of %d is %d\n", num, fact);
}
}

In this example, the do...while loop ensures that the user enters a valid non-negative integer before calculating and displaying the factorial. The for loop inside the main method calculates the factorial by multiplying all integers from 1 to the input number.

Common Mistakes

1. Misunderstanding the execution order

The code block inside a do...while loop will always execute at least once before checking the condition, so it's essential to understand that the condition may not be checked until after the first iteration.

Example: Infinite loop due to misunderstanding

Scanner sc = new Scanner(System.in);
int num;

do {
System.out.print("Enter a number: ");
num = sc.nextInt();
} while (num > 10); // The loop will never terminate if the user enters a number greater than 10 on the first iteration

Solution: Check the condition after the first iteration

Scanner sc = new Scanner(System.in);
int num;

do {
System.out.print("Enter a number: ");
num = sc.nextInt();
} while (num > 10 && num != 0); // The loop will terminate if the user enters a number greater than 10 on subsequent iterations or 0 to exit the loop

2. Forgetting to update the condition

In some cases, you may forget to update the condition in the do...while loop, leading to an infinite loop.

Example: Infinite loop due to forgetting to update the condition

Scanner sc = new Scanner(System.in);
int num;

do {
System.out.print("Enter a number: ");
num = sc.nextInt();
} while (num != 10); // The loop will never terminate since num is never updated inside the loop

Solution: Update the condition inside the loop

Scanner sc = new Scanner(System.in);
int num;

do {
System.out.print("Enter a number: ");
num = sc.nextInt();
} while (num != 10 && num != -1); // The loop will terminate if the user enters the number 10 or -1 to exit the loop

Practice Questions

  1. Write a do...while loop that prompts the user to enter their name until they enter "John".
  2. Create a program that calculates the sum of all even numbers from 2 to 50 using a do...while loop.
  3. Implement a program that finds the smallest prime number greater than 100 using a do...while loop and the Sieve of Eratosthenes algorithm.
  4. Write a do...while loop that repeatedly asks the user for their age until they input an age greater than or equal to 18.
  5. Create a program that calculates the sum of all odd numbers between 1 and 100 using a do...while loop.
  6. Write a do...while loop that repeatedly asks the user for their favorite color until they input a valid color (red, blue, green, or yellow).

FAQ

Q: What's the difference between a do...while and while loop in Java?

A: The main difference is that the code block inside a do...while loop will always execute at least once before checking the condition, whereas a traditional while loop may not execute the code block on the first iteration if the initial condition is false.

Q: How can I create an infinite do...while loop in Java?

A: An infinite do...while loop can be created by never updating the condition inside the loop so that it remains true, causing the loop to repeat indefinitely. To terminate such a loop, you may need to use external factors like user input or system resources.

Q: Can I nest do...while loops in Java?

A: Yes, you can nest do...while loops in Java. However, be mindful of the execution order and ensure that the inner loop's condition does not depend on the outer loop's iteration variables to avoid unexpected behavior.

Q: How do I break out of a do...while loop in Java?

A: You can use a break statement to exit a do...while loop in Java. The break statement terminates the current loop and transfers control to the next statement following the loop.

Q: Can I continue with a do...while loop in Java?

A: Yes, you can use a continue statement to skip the current iteration of a do...while loop in Java. The continue statement causes the program to immediately jump to the next iteration of the loop.

Infinite do while Loop (Java) | Java | XQA Learn