In chapter 4, we saw that we can control the flow of a program using selection statements - i.e. with the keywords
else. The next mode of flow control will be using repetition.
while statement allows us to repeatedly execute a block of code as long as a condition remains valid.
The above code will print
Looping for a total of 3 times before terminating. As you would have noticed, in each loop we decrement the value of
x by one. The first time we execute the loop,
x is 3. The second time it would be 2 and so on, until in the final loop when it becomes 0. Now, the next time we check if
x > 0, the condition evaluates to be false and hence, the loop terminates.
If we try to represent the above code block in terms of a simple flowchart, it will look like this.
We can also execute a code block repeatedly with the
The above three examples show how we can use
for loops with the
In the first example, variable
i gets assigned to 0 first.
range(3) means that the loop is executed as long as
i < 3. In every loop,
i is incremented by 1.
Similarly, in the second example,
i gets a starting value of 2 and the loop is executed as long as
i < 7. In every loop,
i is incremented by 1.
In the third example,
range(0 ,10, 2), i gets a starting value of 0 and the loop is executed as long as
i < 10. While the first two example incremented
i by 1 in each loop, here
i is incremented by 2. This explains why the output is from 0 to 10 in multiples of 2.
for loops provide great utility in almost every program you write. Another useful statement is
break which is used to exit out of a loop.
In this example, we enter an infinite loop by saying
while True. To break out of this infinite loop, we check for a specific condition if
i > 3 in every loop. If that condition evaluates to be true, we
break out of the loop - i.e. loop is terminated.
Sometimes we would also want to skip a specific iteration of the loop. We can do this using the
continue statement. Previously, we saw that we can print all even numbers from 0 to 10 using
range(0, 10, 2). Lets try re-writing this, making use of the
continue statement now.
Here, in each iteration/loop, we check if
i is odd by using the condition
i % 2 != 0. This reads as "if the remainder when
i is divided by 2 is not 0", we continue onto the next iteration without executing any of the following statements.
For example, when
i is equivalent to 3, since (3 % 2 = 1), the condition
i % 2 != 0 evaluates to
false. We continue onto the next iteration without executing line 4 - i.e. nothing is printed.