Categories: All Variables and Constants  String manipulation  Builtin functions  Input and output  Arrays  Conditional logic  Repetition / Iteration  Functions / Procedures 

Show:

This resource is designed as a quick revision guide and must not be used by students during a NEA where internet access is not allowed. It has not been endorsed by any exam boards. If you spot any mistakes, please let me know and I'll fix them asap.

Repetition / Iteration

Computers are very good at repeating similar tasks very quickly. Writing code that contains loops means your program can repeat certain lines of code without having to write them out over and over again.

There are two types of loop:

  • Definite iteration:
    When you know exactly how many times a loop will repeat (e.g. repeat exactly 10 times)
  • Indefinite iteration
    When you don't know exactly how many times a loop will repeat (e.g. repeat until the user presses cancel)

Top tips:

  • While loops and repeat until loops both let you repeat code in slightly different ways. You can often choose to use either as long as you understand the differences.
    Repeat until loops always run at least once. While loops might never run.
  • For loops are great for when you need to iterate through each value in an array.
    Iterating means repeating for each value. This can be counting from a minimum to maximum number or going through each value in an array / list.
While loop
   

A while loop will keep repeating whilst a condition is met (it will stop repeating when the condition is no longer met). 

This is known as a pre-conditioned loop because the program checks if the condition has been met before the code in the loop runs. This means that the minimum number of times the loop will run could be 0.

It is also an example of indefinite iteration because the loop could carry on forever unless the condition is met.

This example program keeps asking the user "Are we nearly there yet" until they say "yes"

STRING nearly_there SET nearly_there TO "no" WHILE nearly_there <> "yes" SEND "Are we nearly there yet?" TO DISPLAY RECEIVE nearly_there FROM (STRING) KEYBOARD END WHILE
Dim nearly_there As String nearly_there = "no" While nearly_there <> "yes" nearly_there = InputBox("Are we nearly there yet?") End While
nearly_there = "no" while nearly_there != "yes": nearly_there = input("Are we nearly there yet?")
nearly_there = "no" while nearly_there != "yes" nearly_there = input("Are we nearly there yet?") endwhile
{ user input not specified in eduqas pseudocode reference } nearlythere is string set nearlythere = "no" while nearlythere <> "yes" output "Are we nearly there yet?" nearlythere = input repeat
Repeat Until loop
   

A repeat until loop will keep repeating until a condition is met.

This is known as a post-conditioned loop because the program checks if the condition has been met after the code in the loop runs. This means that the loop will always run at least once.

It is also an example of indefinite iteration because the loop could carry on forever if the condition is never met.

This example program keeps asking the user "Are we nearly there yet?" until they say "yes"

REPEAT SEND "Are we nearly there yet?" TO DISPLAY RECEIVE nearly_there FROM (STRING) KEYBOARD UNTIL nearly_there = "yes"
Do nearly_there = InputBox("Are we nearly there yet?") Loop Until nearly_there = "yes"
# there is no post-conditioned loop in python # but this works in the same way while True: nearly_there = input("Are we nearly there yet?") if nearly_there == "yes": break
do nearly_there = input("Are we nearly there yet?") until nearly_there == "yes"
{ user input is not specified in eduqas pseudocode reference } nearlythere is string repeat output "Are we nearly there yet?" nearlythere = input until nearlythere == "yes"
Repeat ... times
   

Repeating ... number of times is known as a count controlled loop because you specify exactly how many times the loop will repeat.

Repeat ... times is an example of definite iteration because the number of times the loop repeats is clearly defined.

This example program will repeat the word "Why?" 10 times

REPEAT 10 TIMES SEND "Why?" TO DISPLAY END REPEAT
For i = 1 to 10 MsgBox("Why?") Next i
for i in range(10): print("Why?")
for i = 0 to 9 print("Why?") next i
for i = 0 to 9 output "Why?" next i
For loop
   

A for loop is a count-controlled loop which means it your code says exactly how many times the loop should repeat. 

A for loop will use a variable to count between the minimum and maximum value. This variable is called the index, which is why for loops often use the variable i.

A for loop is an example of definite iteration because the number of times the loop repeats is clearly defined.

This example will count from 10 to 20

FOR i FROM 10 TO 20 DO SEND i TO DISPLAY END FOR
For i = 10 To 20 MsgBox(i) Next i
for i in range(10,21): print(i)
for i = 10 to 20 print(i) next i
for i = 10 to 20 output i next i
For loop (with step)
   

for loop is a count-controlled loop which means it your code says exactly how many times the loop should repeat. 

A for loop will use a variable to count between the minimum and maximum value. This variable is called the index, which is why for loops often use the variable i.

Rather than increasing the index by 1 each time, you can step up by any amount until you reach the maximum.

This example will count down from 10 to 1 then say "Blast off!" 

FOR i FROM 10 TO 1 STEP -1 DO SEND i TO DISPLAY END FOR SEND "Blast off!"
For i = 10 To 1 Step -1 MsgBox(i) Next i MsgBox("Blast off!")
for i in range(10,0,-1): print(i) print("Blast off!")
// There isn't a for loop with step specified // but the following while loop does the same thing i = 10 while i >= 0 print(i) i = i - 1 endwhile print("Blast off!")
{ There isn't a for loop with step specified } { but the following while loop does the same thing } i is integer set i = 10 while i >= 0 output i set i = i - 1 repeat output "Blast off!"
For Each loop
   

A for each loop means the code in the loop will run once for each item in an array.

This means it is a count-controlled loop because the number of times the loop will run is not dependent on a condition being met: you know how many times it will repeat in advance.

A for each loop is an example of definite iteration because the number of times the loop repeats is clearly defined.

This example will display the lyrics for "The wheels on the ... go round and round"  for an array containing the strings "bus", "car" and "tram"

SET vehicles TO ["bus", "car", "tram"] FOR EACH vehicle FROM vehicles DO SEND "The wheels on the " & vehicle & " go round and round" TO DISPLAY SEND "Round and round, round and round" TO DISPLAY SEND "The wheels on the " & vehicle & " go round and round" TO DISPLAY SEND "All day long" END FOREACH
Dim vehicles As String() vehicles = {"bus", "car", "tram"} For Each vehicle As String In vehicles Msgbox("The wheels on the " & vehicle & " go round and round") MsgBox("Round and round, round and round") MsgBox("The wheels on the " & vehicle & " go round and round") Msgbox("All day long") Next For
vehicles = ["bus", "car", "tram"] for vehicle in vehicles: print("The wheels on the " + vehicle + " go round and round") print("Round and round, round and round") print("The wheels on the " + vehicle + " go round and round") print("All day long")
// there's no for each loop specified // but the following code does the same thing array vehicles vehicles[0] = "bus" vehicles[1] = "car" vehicles[2] = "tram" for i = 0 to 2 vehicle = vehicles[i] print("The wheels on the " + vehicle + " go round and round") print("Round and round, round and round") print("The wheels on the " + vehicle + " go round and round") print("All day long") next i
{ there's no for each loop specified } { but the following code does the same thing } vehicles[3] set vehicles[0] = "bus" set vehicles[1] = "car" set vehicles[2] = "tram" for i = 0 to 2 set vehicle = vehicles[i] output "The wheels on the " + vehicle + " go round and round" output "Round and round, round and round" output "The wheels on the " + vehicle + " go round and round" output "All day long" next i

Loading...