A for-in loop helps you go through each item in a group one by one. It makes repeating actions easy and clear.
For-in loop with collections in Swift
Introduction
Syntax
Swift
for item in collection { // code to use item }
item is a temporary name for each element as you loop.
collection can be an array, dictionary, set, or any group of items.
Examples
Swift
let fruits = ["Apple", "Banana", "Cherry"] for fruit in fruits { print(fruit) }
Swift
let scores = [10, 20, 30] var total = 0 for score in scores { total += score } print(total)
Swift
let ages = ["Alice": 25, "Bob": 30] for (name, age) in ages { print("\(name) is \(age) years old") }
Sample Program
This program prints a sentence for each animal in the list.
Swift
let animals = ["Dog", "Cat", "Rabbit"] for animal in animals { print("I love my \(animal)") }
Important Notes
You can use any name instead of item to make your code clearer.
For dictionaries, use two names in parentheses to get both key and value.
For-in loops work with many types of collections, not just arrays.
Summary
For-in loops help you repeat actions for each item in a collection.
They work with arrays, dictionaries, sets, and more.
You write the loop with for item in collection and use the item inside the loop.
Practice
1. What does the following Swift code do?
let numbers = [1, 2, 3]
for number in numbers {
print(number)
}easy
Solution
Step 1: Understand the for-in loop structure
The loop goes through each element in the array named 'numbers'.Step 2: Observe the print statement inside the loop
Each element is printed on its own line as the loop runs.Final Answer:
Prints each number in the array one by one -> Option AQuick Check:
for number in numbers prints each number [OK]
Hint: For-in loops print items one at a time [OK]
Common Mistakes:
- Thinking it prints the whole array at once
- Confusing the loop variable with the collection
- Expecting a sum instead of individual prints
2. Which of the following is the correct syntax for a for-in loop iterating over an array named
fruits in Swift?easy
Solution
Step 1: Recall Swift for-in loop syntax
The correct syntax uses 'for variable in collection { }'.Step 2: Compare options to syntax
Only for fruit in fruits { print(fruit) } matches this syntax exactly.Final Answer:
for fruit in fruits { print(fruit) } -> Option AQuick Check:
Correct for-in syntax uses 'in' keyword [OK]
Hint: Remember: for item in collection { } is correct [OK]
Common Mistakes:
- Using 'to' instead of 'in'
- Using parentheses incorrectly
- Using 'foreach' which is not Swift syntax
3. What will be the output of this Swift code?
let names = ["Anna", "Bob", "Cara"]
for name in names {
print(name.count)
}medium
Solution
Step 1: Identify the array elements and their lengths
"Anna" has 4 letters, "Bob" has 3, "Cara" has 4.Step 2: Understand the loop prints each name's character count
The loop prints 4, then 3, then 4 on separate lines.Final Answer:
4 3 4 -> Option DQuick Check:
name.count matches each string length [OK]
Hint: Count letters of each name inside the loop [OK]
Common Mistakes:
- Mixing up the order of counts
- Counting letters incorrectly
- Assuming print outputs on same line
4. Find the error in this Swift code snippet:
let colors = ["red", "green", "blue"]
for color in colors
print(color)
}medium
Solution
Step 1: Check for proper loop syntax
The for-in loop requires braces '{' and '}' to enclose the loop body.Step 2: Identify missing opening brace
The code has a closing brace '}' but no opening brace '{' after the for line.Final Answer:
Missing opening brace '{' after for loop -> Option CQuick Check:
for loops need braces around their body [OK]
Hint: Always use { } to wrap for loop code block [OK]
Common Mistakes:
- Forgetting opening brace
- Misplacing braces
- Assuming print can be outside without braces
5. You have a dictionary of student names and their scores:
Using a for-in loop, how do you print only the names of students who scored above 80?
let scores = ["Alice": 85, "Bob": 92, "Cara": 78]
Using a for-in loop, how do you print only the names of students who scored above 80?
hard
Solution
Step 1: Understand dictionary iteration with key-value pairs
Using 'for (name, score) in scores' lets you access both keys and values directly.Step 2: Apply condition to print names with score above 80
Inside the loop, check if score > 80, then print the name.Final Answer:
for (name, score) in scores { if score > 80 { print(name) } } -> Option BQuick Check:
Use (key, value) pairs to filter dictionary [OK]
Hint: Use (key, value) in dictionary to access both [OK]
Common Mistakes:
- Trying to loop only keys or values without pairing
- Forgetting to unwrap optional values
- Printing scores instead of names
Recommended
Ready to prove it?
Pass the test and this pattern moves unknown
10 questions ~5 mineasy hard
