DEV Community

Cover image for The for Loop
Paul Ngugi
Paul Ngugi

Posted on

The for Loop

A for loop has a concise syntax for writing loops.
Often you write a loop in the following common form:

i = initialValue; // Initialize loop control variable
while (i < endValue)
// Loop body
 ...
 i++; // Adjust loop control variable
}
Enter fullscreen mode Exit fullscreen mode

A for loop can be used to simplify the preceding loop as:

for (i = initialValue; i < endValue; i++)
// Loop body
 ...
}
Enter fullscreen mode Exit fullscreen mode

In general, the syntax of a for loop is:

for (initial-action; loop-continuation-condition;
 action-after-each-iteration) {
// Loop body;
 Statement(s);
}
Enter fullscreen mode Exit fullscreen mode

The flowchart of the for loop is shown below:

Image description

A for loop performs an initial action once, then repeatedly executes the statements in the loop body, and performs an action after an iteration when the loop-continuation-condition evaluates to true.

The for loop statement starts with the keyword for, followed by a pair of parentheses enclosing the control structure of the loop. This structure consists of initial-action, loop-continuation-condition, and action-after-each-iteration. The control structure is followed by the loop body enclosed inside braces. The initial-action, loop-continuation-condition, and action-after-each-iteration are separated by semicolons.

A for loop generally uses a variable to control how many times the loop body is executed and when the loop terminates. This variable is referred to as a control variable. The initial-action often initializes a control variable, the action-after-each-iteration usually increments or decrements the control variable, and the loop-continuation-condition tests whether the control variable has reached a termination value. For example, the following for loop prints Welcome to Java! a hundred times:

int i;
for (i = 0; i < 100; i++) {
 System.out.println("Welcome to Java!");
}
Enter fullscreen mode Exit fullscreen mode

The flowchart of the statement is shown above on the right. The for loop initializes i to 0, then repeatedly executes the println statement and evaluates i++ while i is less than 100.

The initial-action, i = 0, initializes the control variable, i. The loop-continuation-condition, i < 100, is a Boolean expression. The expression is evaluated right after the initialization and at the beginning of each iteration. If this condition is true, the loop body is executed. If it is false, the loop terminates and the program control turns to the line following the loop.

The action-after-each-iteration, i++, is a statement that adjusts the control variable. This statement is executed after each iteration and increments the control variable. Eventually,
the value of the control variable should force the loop-continuation-condition to become false; otherwise, the loop is infinite.

The loop control variable can be declared and initialized in the for loop. Here is an example:

for (int i = 0; i < 100; i++) {
 System.out.println("Welcome to Java!");
}
Enter fullscreen mode Exit fullscreen mode

If there is only one statement in the loop body, as in this example, the braces can be omitted.

The control variable must be declared inside the control structure of the loop or before the loop. If the loop control variable is used only in the loop, and not elsewhere, it is a good programming practice to declare it in the initial-action of the for loop. If the variable is declared inside the loop control structure, it cannot be referenced outside the loop. In the preceding code, for example, you cannot reference i outside the for loop, because it is declared inside the for loop.

The initial-action in a for loop can be a list of zero or more comma-separated variable declaration statements or assignment expressions. For example:

for (int i = 0, j = 0; i + j < 10; i++, j++) {
// Do something
}
Enter fullscreen mode Exit fullscreen mode

The action-after-each-iteration in a for loop can be a list of zero or more comma-separated statements. For example:

for (int i = 1; i < 100; System.out.println(i), i++);
Enter fullscreen mode Exit fullscreen mode

This example is correct, but it is a bad example, because it makes the code difficult to read. Normally, you declare and initialize a control variable as an initial action and increment or decrement the control variable as an action after each iteration.

If the loop-continuation-condition in a for loop is omitted, it is implicitly true. Thus the statement given below in (a), which is an infinite loop, is the same as in (b). To avoid confusion, though, it is better to use the equivalent loop in (c).

Image description

Top comments (0)