Bird
Raised Fist0
Swiftprogramming~15 mins

For-in loop with ranges in Swift - Mini Project: Build & Apply

Choose your learning style10 modes available
For-in loop with ranges
📖 Scenario: You are helping a small bakery count the number of cupcakes they bake each day for a week. They want to know the total cupcakes baked from Monday to Sunday.
🎯 Goal: Build a Swift program that uses a for-in loop with a range to sum the cupcakes baked each day and print the total.
📋 What You'll Learn
Create a dictionary called cupcakesBaked with keys as days of the week and values as the number of cupcakes baked.
Create a constant days that holds the range from 1 to 7 representing days Monday to Sunday.
Use a for-in loop with the variable day to iterate over days.
Inside the loop, add the cupcakes baked for each day to a variable totalCupcakes.
Print the total cupcakes baked after the loop.
💡 Why This Matters
🌍 Real World
Counting daily production or sales is common in small businesses to track performance and plan inventory.
💼 Career
Using loops and ranges to process data collections is a fundamental skill for software developers, especially in data processing and automation tasks.
Progress0 / 4 steps
1
Create the cupcakes data
Create a dictionary called cupcakesBaked with these exact entries: 1: 12, 2: 15, 3: 10, 4: 20, 5: 18, 6: 25, 7: 22.
Swift
Hint

Use a Swift dictionary with integer keys for days and integer values for cupcakes.

2
Create the days range
Create a constant called days that holds the range from 1 to 7 inclusive.
Swift
Hint

Use the closed range operator ... to include both 1 and 7.

3
Sum cupcakes using a for-in loop
Create a variable called totalCupcakes and set it to 0. Then use a for-in loop with the variable day to iterate over days. Inside the loop, add the cupcakes baked for each day from cupcakesBaked to totalCupcakes. Use optional unwrapping with ?? 0 to handle missing values.
Swift
Hint

Remember to initialize totalCupcakes before the loop and use cupcakesBaked[day] ?? 0 to safely get the value.

4
Print the total cupcakes
Write a print statement to display the text Total cupcakes baked: followed by the value of totalCupcakes using string interpolation.
Swift
Hint

Use print("Total cupcakes baked: \(totalCupcakes)") to show the result.

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