Bird
Raised Fist0
Swiftprogramming~10 mins

For-in loop with collections in Swift - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to loop through all elements in the array and print each one.

Swift
let fruits = ["Apple", "Banana", "Cherry"]
for [1] in fruits {
    print([1])
}
Drag options to blanks, or click blank then click option'
Aindex
Bfruit
Citem
Dfruits
Attempts:
3 left
💡 Hint
Common Mistakes
Using the collection name instead of a variable for each element.
Using a variable name that suggests an index instead of an element.
2fill in blank
medium

Complete the code to loop through the dictionary and print each key and value.

Swift
let ages = ["Alice": 25, "Bob": 30, "Charlie": 35]
for ([1], age) in ages {
    print("\([1]) is \(age) years old")
}
Drag options to blanks, or click blank then click option'
Akey
Bage
Cname
Dvalue
Attempts:
3 left
💡 Hint
Common Mistakes
Using the value variable name for the key.
Using a variable name that does not represent keys.
3fill in blank
hard

Fix the error in the code to correctly loop through the set and print each element.

Swift
let colors: Set = ["Red", "Green", "Blue"]
for [1] in colors {
    print([1])
}
Drag options to blanks, or click blank then click option'
Aindex
Bcolors
Ccolor
Ditem
Attempts:
3 left
💡 Hint
Common Mistakes
Using the collection name instead of a single element variable.
Using a variable name that implies an index which sets do not have.
4fill in blank
hard

Fill both blanks to create a dictionary that maps each word to its length if the length is greater than 3 using reduce.

Swift
let words = ["cat", "house", "dog", "elephant"]
let lengths = words.reduce(into: [String: Int]()) { result, [1] in
    if [2] > 3 {
        result[[1]] = [2]
    }
}
Drag options to blanks, or click blank then click option'
Aword
Bword.count
Cword.length
Dcount
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'word.length' which is not valid in Swift.
Using 'count' alone without specifying the variable.
5fill in blank
hard

Fill all three blanks to create a for-in loop that prints each index and element from the array.

Swift
let animals = ["dog", "cat", "bird"]
for ([1], [2]) in animals.[3]() {
    print("Index \([1]): \([2])")
}
Drag options to blanks, or click blank then click option'
Aindex
Belement
Cenumerated
Ditems
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'items()' which is not a valid method.
Swapping index and element variable names.

Practice

(1/5)
1. What does the following Swift code do?
let numbers = [1, 2, 3]
for number in numbers {
    print(number)
}
easy
A. Prints each number in the array one by one
B. Prints the entire array once
C. Causes a syntax error
D. Prints the sum of the numbers

Solution

  1. Step 1: Understand the for-in loop structure

    The loop goes through each element in the array named 'numbers'.
  2. Step 2: Observe the print statement inside the loop

    Each element is printed on its own line as the loop runs.
  3. Final Answer:

    Prints each number in the array one by one -> Option A
  4. Quick 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
A. for fruit in fruits { print(fruit) }
B. for (fruit : fruits) { print(fruit) }
C. for fruit to fruits { print(fruit) }
D. foreach fruit in fruits { print(fruit) }

Solution

  1. Step 1: Recall Swift for-in loop syntax

    The correct syntax uses 'for variable in collection { }'.
  2. Step 2: Compare options to syntax

    Only for fruit in fruits { print(fruit) } matches this syntax exactly.
  3. Final Answer:

    for fruit in fruits { print(fruit) } -> Option A
  4. Quick 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
A. 3 3 4
B. 3 4 3
C. 4 3 3
D. 4 3 4

Solution

  1. Step 1: Identify the array elements and their lengths

    "Anna" has 4 letters, "Bob" has 3, "Cara" has 4.
  2. Step 2: Understand the loop prints each name's character count

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

    4 3 4 -> Option D
  4. Quick 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
A. Array declaration syntax is wrong
B. Variable name 'color' is invalid
C. Missing opening brace '{' after for loop
D. print statement should be outside the loop

Solution

  1. Step 1: Check for proper loop syntax

    The for-in loop requires braces '{' and '}' to enclose the loop body.
  2. Step 2: Identify missing opening brace

    The code has a closing brace '}' but no opening brace '{' after the for line.
  3. Final Answer:

    Missing opening brace '{' after for loop -> Option C
  4. Quick 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:
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
A. for name in scores.keys { if scores[name] > 80 { print(name) } }
B. for (name, score) in scores { if score > 80 { print(name) } }
C. for score in scores.values { if score > 80 { print(score) } }
D. for name in scores { if scores[name] > 80 { print(name) } }

Solution

  1. Step 1: Understand dictionary iteration with key-value pairs

    Using 'for (name, score) in scores' lets you access both keys and values directly.
  2. Step 2: Apply condition to print names with score above 80

    Inside the loop, check if score > 80, then print the name.
  3. Final Answer:

    for (name, score) in scores { if score > 80 { print(name) } } -> Option B
  4. Quick 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 strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard