What is the difference between for and while loop?

Major difference between for and while loop is at pragmatic level because under the hood, both loops are all the same conditional goto; therefore the choice between while and for is arbitrary, based on which seems clearer. Both for and while loops are entry controlled loops that means test condition is checked for truth while entering into the loop's body.

The for is usually appropriate for loops in which the initialization and increment are single statements and logically related, since it is more compact than while and it keeps the loop control statements together in one place.

The for loop seems most appropriate when number of iteration are known in advance, for example, counting array elements. But, there could be many complex problems where number of iterations depend upon a certain condition and can't be predicated beforehand, in those situation programmers usually prefer to use while loop. The following table lists differences between for and while loop.

Difference Between for and while loops
for while

Syntax of for loop:

for(initialization; condition; iteration)
{
  // body of the loop
}

The initialization is an assignment statement that is used to set the loop control variable. The condition is a relational expression that determines when the loop exits. The increment defines how the loop control variable changes each time the loop is repeated. The body of loop can either be empty or a single statement or a block of statements.

The

for(initialization; condition; iteration)
{
  // body of the loop
}

is equivalent to

initialization;
while(condition)
{
  // body of the loop
iteration;
}

Syntax of while loop:

while(condition)
{
  // body of the loop
}

The condition may be any expression, and true is any non-zero value. The loop iterates while the condition is true. When the condition becomes false, program control passes to the line of code immediately following the loop.

Pragmatic use of for loop: the for is preferable when there is a simple initialization and increment; since it keeps the loop control statements close together and visible at the top of the loop. This is most obvious in
for (i = 0; i < n; i++) {
  ...
}

which is most often seen while processing array elements.

Pragmatic use of while loop: on the other hand while is preferable when the initialization is not just a simple assignment operation and so like increment.
For example, in
while ((c = getchar()) == ' ' || c == '\n' || c = '\t');
/* skip white space characters */

there is no initialization or re-initialization, so the while is most natural.

Hope you have enjoyed reading difference between for and while. Please do write us if you have any suggestion/comment or come across any error on this page. Thanks for reading!



Share this page on WhatsApp

Get Free Tutorials by Email

About the Author

is the founder and main contributor for cs-fundamentals.com. He is a software professional (post graduated from BITS-Pilani) and loves writing technical articles on programming and data structures.