Java Iteration Statements

Iteration statements create loops in the program. In other words, it repeats the set of statements until the condition for termination is met. Iteration statements in Java are for, while and do-while.

1. while statement

The while loop is Java’s most fundamental loop statement. It repeats a statement or block while its controlling expression is true. Here is its general form:

while(condition) { 
    // body of loop 
}

The condition can be any boolean expression. The body of the loop will be executed as long as the conditional expression is true.

Here is more practical example.

// Demonstrate the while loop.
class While {
    public static void main(String args[]) {
        int n = 10;
        while (n > 0) {
            System.out.println("tick " + n);
            n--;
        }
    }
}

The ouput of the program is:

tick 10 
tick 9 
tick 8 
tick 7 
tick 6 
tick 5 
tick 4 
tick 3 
tick 2 
tick 1

2. do-while statement

The do-while loop always executes its body at least once, because its conditional expression is at the bottom of the loop. Its general form is:

do{
    // body of loop
} while(condition);

Each iteration of the do-while loop first executes the body of the loop and then evaluates the conditional expression. If this expression is true, the loop will repeat. Otherwise, the loop terminates. As with all of Java’s loops, condition must be a Boolean expression.

The program presented in previous while statement can be re-written using do-while as:

// Demonstrate the do-while loop. 
class DoWhile {
    public static void main(String args[]) {
        int n = 10;
        do {
            System.out.println("tick " + n);
            n--;
        } while (n > 0);
    }
}

3. for loop

Here is the general form of the traditional for statement:

for(initialization; condition; iteration) { 
    // body 
}

The program from previous example can be re-written using for loop as:

// Demonstrate the for loop. 
class ForTick {
    public static void main(String args[]) {
        int n;
        for (n = 10; n > 0; n--) System.out.println("tick " + n);
    }
}

The ouput of the program is same as output from program in while loop.

There can be more than one statement in initilaization and iteration section. They must be separated with comma.

Here, we've presented the example to illustrate this.

// more than one statement using the comma. 
class Comma {
    public static void main(String args[]) {
        int a, b;
        for (a = 1, b = 4; a < b; a++, b--) {
            System.out.println("a = " + a);
            System.out.println("b = " + b);
        }
    }
}

The ouput of the program is:

a = 1 
b = 4 
a = 2 
b = 3

Here, the initialization portion sets the values of both a and b. The two comma separated statements in the iteration portion are executed each time the loop repeats.

Nested Loops

Loops can be nested as per requirement. Here is example of nesting the loops.

// nested loops 
class NestedLoop {
    public static void main(String args[]) {
        int i, j;
        for (i = 0; i < 8; i++) {
            for (j = i; j < 8; j++) 
                 System.out.print(".");
            System.out.println();
        }
    }
}

Here, two for loops are nested. The number times inner loop iterates depends on the value of i in outer loop.

The output of the program is:

........ 
....... 
...... 
..... 
.... 
... 
.. 
.

for-each loop

It is advanced form of for loop. It is easier while iterating over the collection of element and also the advanced for-each construct gets rid of the clutter and the opportunity for error.

Here is how the example looks with the for-each construct:

for(element: collection) {
    // body
}

Example: (from Oracle)

void cancelAll(Collection<TimerTask> c) {
    for (TimerTask t : c)
        t.cancel();
}

The loop above reads as “for each TimerTask t in c.”

 

Selection Statement - Decision Making
Java Break, Continue and return