Iteration (Cambridge (CIE) A Level Computer Science): Revision Note

Exam code: 9618

Robert Hampton

Written by: Robert Hampton

Reviewed by: James Woodhouse

Updated on

What is iteration?

  • Iteration is repeating a line or a block of code using a loop

  • Iteration can be:

    • Count-controlled

    • Condition-controlled

Count-controlled loops

What is a count-controlled loop?

  • A count-controlled loop is when the code is repeated a fixed number of times (e.g. using a FOR loop)

  • A count-controlled loop can be written as:

Pseudocode

FOR <identifier> ← <value1> TO <value2>
  <statements(s)>
NEXT <identifier>
FOR <identifier> ← <value1> TO <value2> STEP <increment>
  <statements(s)>
NEXT <identifier>
  • In a FOR loop, the increment must be an expression that evaluates to an integer

    • The loop starts at value1

    • The identifier is updated by the increment value on each iteration

    • The loop continues until the identifier passes value2

  • The increment can be positive or negative, depending on the direction you want the loop to count

Nested count-controlled loops

FOR i ← 1 TO 3
    FOR j ← 1 TO 3
        OUTPUT i, " x ", j, " = ", i * j
    NEXT j
NEXT i
  • The outer loop runs i from 1 to 3

  • For each value of i, the inner loop runs j from 1 to 3

  • It outputs all combinations of i × j

1 x 1 = 1
1 x 2 = 2
1 x 3 = 3
2 x 1 = 2
...
3 x 3 = 9

Count-controlled loops in different languages

Python

VB.net

Java

Print the numbers 1 to 5

for i in range(1, 6):
    print(i)
For i As Integer = 1 To 5
    Console.WriteLine(i)
Next
for (int i = 1; i <= 5; i++) {
    System.out.println(i);
}

Condition-controlled loops

What is a condition controlled loop?

  • A condition controlled loop is when the code is repeated until a condition is met

  • There are two types of condition controlled loops:

    • Post-condition (REPEAT)

    • Pre-condition (WHILE)

Post-condition loops (REPEAT)

  • A post-condition loop is executed at least once

  • The condition must be an expression that evaluates to a Boolean (True/False)

  • The condition is tested after the statements are executed and only stops once the condition is evaluated to True

  • It can be written as:

Pseudocode

REPEAT
  <statement(s)>
UNTIL <condition>

Pre-condition loops (WHILE)

  • The condition must be an expression that evaluates to a Boolean (True/False)

  • The condition is tested and statements are only executed if the condition evaluates to True

  • After statements have been executed the condition is tested again

  • The loop ends when the condition evaluates to False

  • It can be written as:

Pseudocode

WHILE <condition> DO
  <statement(s)>
ENDWHILE

Nested condition-controlled loops

DECLARE Username : STRING
DECLARE Count : INTEGER

Count ← 0

WHILE Count < 3
    Username ← ""
    
    WHILE Username = ""
        OUTPUT "Enter a username: "
        INPUT Username

        IF Username = "" THEN
            OUTPUT "Username cannot be blank."
        ENDIF
    ENDWHILE

    OUTPUT "Username accepted: ", Username
    Count ← Count + 1
ENDWHILE
  • Ask the user to enter up to 3 usernames

  • For each one, keep asking until a non-empty name is entered

  • Outer WHILE runs 3 times (for 3 usernames)

  • Inner WHILE ensures that each username is not blank

Condition-controlled loops in different languages

Python

VB.net

Java

Keep asking the user to enter a password until they type "admin"

password = ""

while password != "admin":
    password = input("Enter the password: ")
    
    if password != "admin":
        print("Incorrect, try again.")

print("Access granted!")
Module PasswordCheck
    Sub Main()
        Dim password As String = ""

        While password <> "admin"
            Console.Write("Enter the password: ")
            password = Console.ReadLine()

            If password <> "admin" Then
                Console.WriteLine("Incorrect, try again.")
            End If
        End While

        Console.WriteLine("Access granted!")
        Console.ReadLine() ' Keeps the console open
    End Sub
End Module
import java.util.Scanner;

public class PasswordCheck {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String password = "";

        while (!password.equals("admin")) {
            System.out.print("Enter the password: ");
            password = scanner.nextLine();

            if (!password.equals("admin")) {
                System.out.println("Incorrect, try again.");
            }
        }

        System.out.println("Access granted!");
        scanner.close();
    }
}

When to use each type of loop

Loop type

When to use

Example scenario

Count-controlled loop (FOR)

When you know in advance how many times you want the loop to run

Repeating an action 5 times, generating a multiplication table

Pre-condition loop (WHILE)

When you want to check a condition before running the loop. It may run 0 or more times

Keep asking for a valid password before granting access

Post-condition loop (REPEAT ... UNTIL)

When you want the loop to run at least once, and then stop when a condition becomes true

Ask the user for input and validate it after first run

You've read 0 of your 5 free revision notes this week

Unlock more, it's free!

Join the 100,000+ Students that ❤️ Save My Exams

the (exam) results speak for themselves:

Did this page help you?

Robert Hampton

Author: Robert Hampton

Expertise: Computer Science Content Creator

Rob has over 16 years' experience teaching Computer Science and ICT at KS3 & GCSE levels. Rob has demonstrated strong leadership as Head of Department since 2012 and previously supported teacher development as a Specialist Leader of Education, empowering departments to excel in Computer Science. Beyond his tech expertise, Robert embraces the virtual world as an avid gamer, conquering digital battlefields when he's not coding.

James Woodhouse

Reviewer: James Woodhouse

Expertise: Computer Science & English Subject Lead

James graduated from the University of Sunderland with a degree in ICT and Computing education. He has over 14 years of experience both teaching and leading in Computer Science, specialising in teaching GCSE and A-level. James has held various leadership roles, including Head of Computer Science and coordinator positions for Key Stage 3 and Key Stage 4. James has a keen interest in networking security and technologies aimed at preventing security breaches.