# Types of Iteration / Loop

Programming languages tend to have different types of iteration available, for example you have: For, Repeat, While.

• For – will run a set number of times
• Repeat – will run at least once and then check
• While – will check first so may never run

# For

Should be used when you need to repeat a certain number of times. This could be a known value such as ten times or a value we can calculate (for example 10 items a list, a bubble sort will definitely sort the list with a loop of 10 iterations and we need to repeat the loop 10 times).

In Python, for loop is usually used with the range() function, so to print a number from 1 to 10:

for i in range(1,11):
print(i)


The value of i will initially be 1 (specified in the range command), it will then increment this by 1 each time the loop is repeated. So the fourth time through this loop i will equal 4. Essentially the value 11 is the stopping condition, ie repeat while i is less than 11.

Alternatively you could give range a single value, in this case it will start from 0. So the code below will print out the numbers from 0 to 9:

for i in range(10):
print(i)


### For Loop & Lists

A for loop can be used to cycle through each item in a list. This could be extremely useful in many situations:

num_list = [1,3,5,7,9,11]
total=0
for num in num_list:
total = total + num # could use total += num instead
print("total is "+total)


## Now Try

1) Create a program to print out the 12 times table (using a for loop)

2) Create a program to draw the number of stars entered by the user (these should be on a single row)

3) Adapt the line of stars program above to print the stars the number of times the user entered (ie 2 lines of 2 stars)

4) Create a program to draw a triangle of stars

# While

while is usually used to perform some repetitive tasks that may be executed one or more times based on some condition. The key to a while loop is that we probably don't know how many times it will need to repeat, or if it will need to run at all. The code below shows a sample while loop in Python:

i=0
while i<10:
i=i+1 # could use i++ instead
print("i is "+i)


## Break

Break can be used to stop the execution for a loop, for example:

i=0
while i<10:
i=i+1 # could use i++ instead
if i>5:
break
print("i is "+i)


In this program i will start at 0 and iterate until i becomes 6, and the loop will stop. This means i will never be 7,8,9 or 10.

## Continue

Break will stop the iteration, continue can be used to skip the rest of the current iteration. For example the code below will print out the numbers from 1 to 10, but will skip the number 5:

i=0
while i<10:
i=i+1 # could use i++ instead
if i=5:
continue
print("i is "+i)


# Repeat

Python doesn't really have a repeat loop, however we can create one using a while:

while true:
if password == "itsjustme":
break


Having 'while true:' means this will ALWAYS run, then internally we need an if statement to check the condition for stopping. Alternatively we could use a boolean for this instead:

loopcontrol = true
while loopcontrol:
if password == "itsjustme":
loopcontrol = false


# Now Try

1) Create a program to ask a user to enter a number between 10 & 50

• The program should use a while loop so that the user will be asked again if an incorrect value was entered
• The should inform the user that what was entered is out of the range specified
• The number enter should be displayed if it is in the range specified

2) The sequence 1,4,9,16,25 is made up of square numbers (i.e.1=1,2= 4, 3=9 etc.). Write a program that writes out this all the square numbers under 5000.

3)The factorial of a number is written using “!”. So the factorial of 5 is written 5!. By factorial we mean what do we get when we multiply all the numbers up to and including that number. So 5! = 5 x 4 x 3 x 2 x 1 and 7! = 7 x 6 x 5 x 4 x 3 x 2 x 1. Write a program to calculate the factorial of the number entered.