Introduction
This will be a short tutorial, as while loops are pretty easy. You MUST understand conditionals to continue. While loops rely on an expression to operate. As long as the expression is True
, the loop will run. When the expression stops being True
(ie. it is False
), so does the loop.
WHILE loop structure
The basic structure of a while
loop is as follows:
while (expression):
# Do something
This will execute the code inside the # Do something
section AS LONG AS the expression evaluates to True
. Let’s look at a basic example:
i = 0
while i > 10:
print i
i = i + 1
What will this print? Does the code change if we change the order of the statements inside the loop like so?
i = 0
while i > 10:
i = i + 1
print i
Another way to use a while
loop is to utilize the power of if
statements to control the flow of the loop. This is done using what is often called a flag. The flag is initially True
, and is set to False
upon some condition. Once it is False
, the while
loop stops.
i = 0
flag = True
while flag:
i = i + 1
print i
if i == 10:
flag = False
Check yourself to see how these results are similar.
Yet another way is to set the while
loop’s expression to always be True
. This would cause the loop to run forever! This is called an infinite loop. Fortunately, we can use the break
statement to “break out” of the loop. The break
statement basically forces the loop to stop if it is run.
i = 0
while True:
i = i + 1
print i
if i == 10:
break
Any of the above methods are suitable for labs. Try to pick the best one based on the problem, and make sure you understand all of them for tests and exams.
Replacing FOR loops
for
loops are similar to while
loops, but can only operate at a finite length, and can’t easily rely on Boolean operations to control their flow.
As a rule, any for
loop can be turned into a while
loop. However, any while
loop can not be turned into a for
loop.
Try it yourself! Try to turn this FOR loop into a WHILE loop:
for i in range(100):
print "my number is ", i
Easy, right? Now, try to change this loop to a FOR loop.
from random import randint
i = 0
while i != 50:
i = randint(0, 100) #get random int from 0 to 100
Try this out! It’s not possible to change this loop into a FOR loop.