Codectionary / Developer documentation / Java

while and do-while Loops

A while loop repeats its block as long as its condition remains true, checking the condition before each iteration - so the body might never execute at all. A do-while loop is similar, but checks the condition after the body runs, guaranteeing the loop body executes at least once. Both are ideal when the number of iterations isn't known ahead of time.

Syntax

while (condition) {\n  // code\n}

Examples

Basic while Loop

Repeating a block until a condition becomes false.

int count = 0;

while (count < 5) {
    System.out.println(count);
    count++;
}

System.out.println("Done");

do-while Loop

Guaranteeing the loop body runs at least once, since the condition is checked afterward.

int number;
java.util.Scanner scanner = new java.util.Scanner(System.in);

do {
    System.out.println("Enter a positive number:");
    number = scanner.nextInt();
} while (number <= 0);

System.out.println("You entered: " + number);

while Loop with break

Using while (true) with an internal break condition for more complex exit logic.

int attempts = 0;

while (true) {
    attempts++;
    if (attempts == 3) {
        System.out.println("Success after " + attempts + " attempts");
        break;
    }
}

Best practices

  • Use a do-while loop specifically when the loop body must run at least once, such as displaying a menu before checking user input
  • Always ensure the while condition will eventually become false, or include a break, to avoid an infinite loop
  • Prefer a for loop when the number of iterations is known in advance - reserve while for genuinely condition-driven repetition
  • Double-check that variables used in the loop condition are actually being updated somewhere inside the loop body

At a glance

Purpose
General-purpose application development
File extension
.java
Runs in
Java Virtual Machine
Usually used with
JDK and Java libraries

Specifications & further reading

Related Java documentation

Variables & Primitive Data Types
Java is a statically-typed language, meaning every variable must be declared with an explicit type before use, and that type cannot change afterward. Java has eight primitive types - byte, short, int, long, float, double, char, and boolean - which store simple values directly rather than references, making them fast and memory-efficient. Anything beyond primitives (String, arrays, custom classes) is a reference type instead.
System.out.println / print / printf
System.out is Java's standard output stream, and it exposes three main methods for writing text to the console. println() prints its argument followed by a newline, print() prints without adding a newline, and printf() gives C-style formatted output using format specifiers like %d, %s, and %.2f for precise control over how values are displayed.
Comments & Javadoc
Java supports single-line comments with //, multi-line comments with /* */, and a special documentation format called Javadoc, written as /** */. Javadoc comments support tags like @param, @return, and @throws, and can be processed by the javadoc tool to automatically generate HTML API documentation - the same format used for Java's own official standard library docs.
Arithmetic & Assignment Operators
Java provides the standard arithmetic operators for numeric computation: +, -, *, / for division, and % for the remainder (modulus). It also has compound assignment operators (+=, -=, etc.) that combine an operation with assignment, along with increment (++) and decrement (--) operators in both prefix and postfix forms, which subtly differ in when the value is updated relative to being used.