While loop can be presented in the following way

while (expression) statement

OR

while (expression) { statement }

__Expression__: Expressions are sequences of operators and operands. For example `3`

, `2 + 5`

, `a + b + c`

, `x + y * 5 / z`

, `a`

, `true`

, `false`

, `0`

, `x < 10`

, etc are expressions.

The output of the expression will be a boolean (true or false). If expression returns true then we will enter the while loop else we will exit the while loop.

__Note__: All non-zero values will be converted to true, and zero values to false. Negative numbers are non-zero so they will be converted to true.

In above syntax “statement” is a line of instructions or a block of instructions. As the value of an expression is true the statement will get executed. If the value of an expression is false the while loop will be terminated. Take a look on various examples of while loops:

### Infinite loop

while(true) { cout << "I am inside loop" << endl; }

Above loop will run forever because the expression `true`

is always true. Below code is also similar to above code since `1`

is equal to `true`

.

while(1) { cout << "I am inside loop" << endl; }

Output of above code will be

I am inside loop

I am inside loop

I am inside loop

…

…

…

will run forever

### how to break an infinite loop?

We can break an infinite loop using control statements like `break`

and `goto`

.

while(1) { cout << "I am inside loop" << endl; if(i==1) { break; } }

In above code “i” is a varible which is getting change by other code snippet.

### Finite loop

For finite loops we should have an expression which should give a `false`

value some how. In below code the expression will give `false`

value if value of x will be greater than or equal to 10. Since we are incrementing value of x so after some time condition x < 10 will return `false`

and `while`

loop will terminate.

int x = 0; while (x < 10) // the condition is "x < 10" { ++x; // statement executed in loop } cout << "Now x is " << x << endl;

Output will be “Now x is 10”

To perform specific operation multiple time we put that operation inside the loop. In below code we want to print value of x multiple time till x < 20

int x = 10; while (x < 20)// the condition is "x < 20" { // this block is executed in loop ++x; cout << "Now x is " << x << endl; }

The output of above code will be

Now x is 11

Now x is 12

Now x is 13

Now x is 14

Now x is 15

Now x is 16

Now x is 17

Now x is 18

Now x is 19

Now x is 20

In below code the value of x is decrementing and as value of x will reach zero then while loop will terminate.

int x = 10; while (x)// the condition while x. It means while x is not equal to zero --x; cout << "Now x is " << x << endl;

Above program gives the output

Now x is 0

The sequence of actions in the while loop is the following:

__Step1__: Check condition. If condition is true go to Step2. Else Stop.

__Step2__: Perform block of instructions. Go to Step1

Below is the flow diagram of a while loop.