Supriya Ghosh (Editor)

While loop

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
While loop

In most computer programming languages, a while loop is a control flow statement that allows code to be executed repeatedly based on a given Boolean condition. The while loop can be thought of as a repeating if statement.

Contents

Overview

The while construct consists of a block of code and a condition/expression. The condition/expression is evaluated, and if the condition/expression is true, the code within the block is executed. This repeats until the condition/expression becomes false. Because the while loop checks the condition/expression before the block is executed, the control structure is often also known as a pre-test loop. Compare this with the do while loop, which tests the condition/expression after the loop has executed.

For example, in the C programming language (as well as Java, C#, Objective-C, and C++, which use the same syntax in this case), the code fragment

first checks whether x is less than 5, which it is, so then the {loop body} is entered, where the printf function is run and x is incremented by 1. After completing all the statements in the loop body, the condition, (x < 5), is checked again, and the loop is executed again, this process repeating until the variable x has the value 5.

Note that it is possible, and in some cases desirable, for the condition to always evaluate to true, creating an infinite loop. When such a loop is created intentionally, there is usually another control structure (such as a break statement) that controls termination of the loop. For example:

Equivalent constructs

In the C programming language,

is equivalent to

or

or

or

Those last two are not recommended because the use of "goto" statements makes it hard for a programmer to understand the flow of control, and is generally regarded as a last resort.

Also, in C and its descendants, a while loop is a for loop with no initialization or counting expressions, i.e.,

Demonstrating while loops

These while loops will calculate the factorial of the number 5:

Java, C#, D

The code for the loop is the same for Java, C# and D:

For Java the result is printed as follows:

The same in C#

And finally in D

Perl

While loops are frequently used for reading data line by line (as defined by the $/ line separator) from open filehandles:

Python

Non-terminating while loop:

Racket

In Racket, as in other Scheme implementations, a named-let is a popular way to implement loops:

Using a macro system, implementing a while loop is a trivial exercise (commonly used to introduce macros):

But note that an imperative programming style is often discouraged in Racket (as in Scheme).

Smalltalk

Contrary to other languages, in Smalltalk a while loop is not a language construct but defined in the class BlockClosure as a method with one parameter, the body as a closure, using self as the condition.

Smalltalk also has a corresponding whileFalse: method.

While programming language

The While programming language is a simple programming language constructed from assignments, sequential composition, conditionals and while statements, used in the theoretical analysis of imperative programming language semantics.

References

While loop Wikipedia