Java Loops

for

Java
for (int i = 1; i <= 5; i++) {
    System.out.println(i);
}

while

Java
int i = 1;
while (i <= 5) {
    System.out.println(i);
    i++;
}

do...while

Runs the body at least once:

Java
int i = 10;
do {
    System.out.println(i);  // prints 10
    i++;
} while (i <= 5);

Enhanced for (for-each)

The one to reach for when iterating a collection or array:

Java
int[] marks = {88, 74, 91};

for (int m : marks) {
    System.out.println(m);
}

List<String> names = List.of("Sita", "Ram", "Hari");
for (String n : names) {
    System.out.println(n);
}

You cannot modify the array/list structure through a for-each — use an indexed for or an Iterator for that.

break and continue

Java
for (int i = 1; i <= 10; i++) {
    if (i % 2 == 0) continue;  // skip evens
    if (i > 7) break;          // stop entirely
    System.out.println(i);      // 1 3 5 7
}

Labelled break

For escaping nested loops in one step:

Java
outer:
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        if (i * j > 2) break outer;
        System.out.println(i + "," + j);
    }
}

Use sparingly — often a well-named method with an early return reads better.

Common mistakes

Java
// Off-by-one: <= on an array length goes out of bounds
for (int i = 0; i <= arr.length; i++) { }   // ArrayIndexOutOfBoundsException
for (int i = 0; i < arr.length; i++) { }    // correct

// Infinite loop: forgetting to advance the counter
int i = 0;
while (i < 5) {
    System.out.println(i);   // i never changes
}