Bird
Raised Fist0
Swiftprogramming~10 mins

For-in loop with ranges in Swift - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - For-in loop with ranges
Start
↓
Set range start and end
↓
Pick next number in range
↓
Execute loop body with number
↓
More numbers in range?
No→End
Yes↓
Pick next number in range
The loop picks each number from the range one by one and runs the code inside the loop for each number until all numbers are used.
Execution Sample
Swift
for i in 1...3 {
    print(i)
}
This code prints numbers 1, 2, and 3, one on each line.
Execution Table
Iterationi valueActionOutput
11Print i1
22Print i2
33Print i3
4-No more numbers in range-
💡 i reaches 3, next number does not exist, loop ends
Variable Tracker
VariableStartAfter 1After 2After 3Final
i-123-
Key Moments - 2 Insights
Why does the loop stop after printing 3?
Because the range 1...3 includes only numbers 1, 2, and 3. After 3, there are no more numbers, so the loop ends as shown in execution_table row 4.
What if we use 1..<3 instead of 1...3?
The range 1..<3 includes 1 and 2 but not 3. So the loop would run only twice, printing 1 and 2. This is a half-open range.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of i at iteration 2?
A1
B3
C2
D-
💡 Hint
Check the 'i value' column in the execution_table at iteration 2.
At which iteration does the loop stop because there are no more numbers?
A3
B4
C2
D1
💡 Hint
Look at the 'Action' column where it says 'No more numbers in range'.
If the range changes to 1..<3, how many times will the loop run?
A2 times
B3 times
C1 time
D4 times
💡 Hint
Recall that 1..<3 excludes 3, so it includes 1 and 2 only.
Concept Snapshot
for i in start...end {
    // code using i
}

- Runs loop from start to end including end
- i takes each number in the range
- Use ... for closed range (includes end)
- Use ..< for half-open range (excludes end)
Full Transcript
This visual execution shows how a for-in loop with a range works in Swift. The loop variable i takes each number from the range 1 to 3, including 3. Each iteration prints the current value of i. The loop stops after reaching the last number in the range. The execution table tracks each iteration, the value of i, the action taken, and the output printed. The variable tracker shows how i changes over time. Key moments clarify why the loop stops and the difference between closed and half-open ranges. The quiz tests understanding of the loop variable values and loop termination conditions.

Practice

(1/5)
1. What does the following Swift code print?
for i in 1...3 { print(i) }
easy
A. 1 2
B. 1 2 3
C. 0 1 2 3
D. 2 3 4

Solution

  1. Step 1: Understand the range operator

    The range 1...3 is a closed range including 1, 2, and 3.
  2. Step 2: Loop prints each number in the range

    The loop prints 1, then 2, then 3 on separate lines.
  3. Final Answer:

    1 2 3 -> Option B
  4. Quick Check:

    Closed range includes last number = 1 2 3 [OK]
Hint: Closed range includes last number, so count all numbers [OK]
Common Mistakes:
  • Thinking the last number is excluded
  • Starting from 0 instead of 1
  • Confusing closed and half-open ranges
2. Which of the following is the correct syntax for a for-in loop iterating from 0 to 4 (excluding 4) in Swift?
easy
A. for i in 0...4 { }
B. for i in 0 to 4 { }
C. for i in 0..<4 { }
D. for i = 0; i < 4; i++ { }

Solution

  1. Step 1: Identify the correct range syntax

    0..<4 is a half-open range including 0,1,2,3 but excluding 4.
  2. Step 2: Check Swift for-in loop syntax

    Swift uses 'for variable in range { }' syntax; 'for i in 0..<4 { }' is correct.
  3. Final Answer:

    for i in 0..<4 { } -> Option C
  4. Quick Check:

    Half-open range excludes last number = for i in 0..<4 { } [OK]
Hint: Use '..<' for half-open range excluding last number [OK]
Common Mistakes:
  • Using '...' when last number should be excluded
  • Using 'to' keyword which is invalid in Swift
  • Using C-style for loop syntax which is not valid in Swift
3. What is the output of this Swift code?
var sum = 0
for number in 1..<5 {
  sum += number
}
print(sum)
medium
A. 10
B. 15
C. 14
D. Error

Solution

  1. Step 1: Identify the range and loop values

    The range 1..<5 includes 1, 2, 3, 4 (excluding 5).
  2. Step 2: Calculate the sum of these numbers

    Sum = 1 + 2 + 3 + 4 = 10.
  3. Final Answer:

    10 -> Option A
  4. Quick Check:

    Sum of 1 to 4 = 10 [OK]
Hint: Half-open range excludes last number; sum 1+2+3+4 = 10 [OK]
Common Mistakes:
  • Including 5 in the sum
  • Adding numbers incorrectly
  • Confusing closed and half-open ranges
4. The following Swift code has an error. What is it?
for i in 1..< { print(i) }
medium
A. No error, code runs fine
B. Using wrong loop variable
C. Using closed range instead of half-open
D. Missing end value in range

Solution

  1. Step 1: Check the range syntax

    The range 1..< is incomplete; it misses the end value after '..<' operator.
  2. Step 2: Identify the error type

    This causes a syntax error because Swift expects a number after '..<' to define the range.
  3. Final Answer:

    Missing end value in range -> Option D
  4. Quick Check:

    Range must have start and end values [OK]
Hint: Range must have start and end values, '..<' alone is invalid [OK]
Common Mistakes:
  • Leaving out the end value in range
  • Confusing '..<' with '...' syntax
  • Assuming loop variable causes error
5. You want to print all even numbers from 2 to 10 inclusive using a for-in loop with a range. Which code correctly does this?
hard
A. for i in 2...10 where i % 2 == 0 { print(i) }
B. for i in 2..<10 { if i % 2 == 0 { print(i) } }
C. for i in 2...10 { if i % 2 == 1 { print(i) } }
D. for i in 2...9 where i % 2 == 0 { print(i) }

Solution

  1. Step 1: Understand the range and condition

    We want even numbers from 2 to 10 inclusive, so use closed range 2...10.
  2. Step 2: Use 'where' clause to filter even numbers

    The 'where i % 2 == 0' filters only even numbers in the loop.
  3. Final Answer:

    for i in 2...10 where i % 2 == 0 { print(i) } -> Option A
  4. Quick Check:

    Closed range + where filter = for i in 2...10 where i % 2 == 0 { print(i) } [OK]
Hint: Use closed range and 'where' to filter even numbers [OK]
Common Mistakes:
  • Using half-open range excluding 10
  • Printing odd numbers by mistake
  • Forgetting to filter even numbers
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard