📖 Scenario: You are organizing a small library and want to list books by their shelf numbers. You will use Swift's range operators to select shelves.
🎯 Goal: Learn how to use the closed range operator ... and the half-open range operator .. to select ranges of shelf numbers.
📋 What You'll Learn
Create an array called shelves with shelf numbers from 1 to 10
Create a variable called closedRange using the closed range operator ... to select shelves 3 to 7
Create a variable called halfOpenRange using the half-open range operator ..< to select shelves 3 to 7 (excluding 7)
Print the selected shelves for both ranges
💡 Why This Matters
🌍 Real World
Range operators help select parts of lists or sequences, like choosing shelves in a library or pages in a book.
💼 Career
Understanding range operators is useful for filtering data, looping through parts of collections, and writing clear, concise code in Swift.
Progress0 / 4 steps
1
Create the shelves array
Create an array called shelves with the numbers from 1 to 10.
Swift
Hint
Use Array(1...10) to create an array with numbers from 1 to 10.
2
Create the closed range variable
Create a variable called closedRange using the closed range operator ... to select shelves from 3 to 7.
Swift
Hint
Use shelves[2...6] to select shelves from index 2 to 6 inclusive.
3
Create the half-open range variable
Create a variable called halfOpenRange using the half-open range operator ..< to select shelves from 3 to 7, excluding 7.
Swift
Hint
Use shelves[2..<6] to select shelves from index 2 up to but not including 6.
4
Print the selected shelves
Print the variables closedRange and halfOpenRange to show the selected shelves.
Swift
Hint
Use print() with string interpolation to show the arrays.
Practice
(1/5)
1. What does the Swift range operator 1...5 represent?
easy
A. A range including numbers 1, 2, 3, 4, and 5
B. A range including numbers 1, 2, 3, and 4 only
C. A range excluding number 1 but including 5
D. A range excluding both 1 and 5
Solution
Step 1: Understand the closed range operator
The ... operator creates a range that includes both the start and end values.
Step 2: Apply to the given range
For 1...5, it includes 1, 2, 3, 4, and 5.
Final Answer:
A range including numbers 1, 2, 3, 4, and 5 -> Option A
Quick Check:
1...5 includes 5 [OK]
Hint: Remember: ... includes end number, ..< excludes it [OK]
Common Mistakes:
Thinking ... excludes the last number
Confusing ... with ..<
Assuming ..< includes the end number
2. Which of the following is the correct syntax to create a half-open range from 0 to 9 in Swift?
easy
A. 0...9
B. 0..<10
C. 0..9
D. 0...10
Solution
Step 1: Identify half-open range syntax
The half-open range operator in Swift is ..<, which includes the start but excludes the end.
Step 2: Apply to the range 0 to 9
To include numbers 0 through 9, use 0..<10 because 10 is excluded.
Final Answer:
0..<10 -> Option B
Quick Check:
..< excludes end [OK]
Hint: Use ..< to exclude the last number in range [OK]
Common Mistakes:
Using ... when half-open range is needed
Writing 0..9 which is invalid syntax
Confusing end number inclusion
3. What will be the output of the following Swift code?
for i in 3..<6 {
print(i, terminator: ",")
}
medium
A. 3,4,5,6,
B. 4,5,6,
C. 3,4,5,
D. 3,4,5,6
Solution
Step 1: Understand the range used in the loop
The range 3..<6 includes 3, 4, and 5 but excludes 6.
Step 2: Trace the loop output
The loop prints 3, then 4, then 5, each followed by a comma.
Final Answer:
3,4,5, -> Option C
Quick Check:
..<6 excludes 6 [OK]
Hint: ..< excludes end; loop stops before 6 [OK]
Common Mistakes:
Including 6 in output
Missing commas in output
Confusing terminator usage
4. The following Swift code has an error. What is the problem?
let range = 1..5
for num in range {
print(num)
}
medium
A. The range operator .. is invalid in Swift
B. The loop variable num is not declared
C. The print statement syntax is incorrect
D. The range should start from 0
Solution
Step 1: Check the range operator used
The code uses 1..5, which is not a valid range operator in Swift.
Step 2: Identify correct range operators
Swift uses ... for closed ranges and ..< for half-open ranges, but not ...
Final Answer:
The range operator .. is invalid in Swift -> Option A
Quick Check:
Invalid operator .. causes error [OK]
Hint: Use ... or ..<, never .. alone [OK]
Common Mistakes:
Using .. instead of ... or ..<
Assuming .. is a valid operator
Ignoring compiler error messages
5. You want to create a Swift array containing numbers from 5 to 15, excluding 15, and then print only the even numbers. Which code snippet correctly uses range operators and filtering?
hard
A. let numbers = Array(5...15).filter { $0 % 2 == 0 }
print(numbers)
B. let numbers = Array(5..15).filter { $0 % 2 == 0 }
print(numbers)
C. let numbers = Array(5..<14).filter { $0 % 2 == 0 }
print(numbers)
D. let numbers = Array(5..<15).filter { $0 % 2 == 0 }
print(numbers)
Solution
Step 1: Choose correct range excluding 15
To exclude 15, use the half-open range 5..<15, which includes 5 up to 14.
Step 2: Filter even numbers
The filter condition { $0 % 2 == 0 } selects even numbers from the array.
Step 3: Verify other options
let numbers = Array(5...15).filter { $0 % 2 == 0 }
print(numbers) includes 15, let numbers = Array(5..15).filter { $0 % 2 == 0 }
print(numbers) uses invalid operator .., and let numbers = Array(5..<14).filter { $0 % 2 == 0 }
print(numbers) uses 5..<14 which goes only up to 13, missing the even number 14.
Final Answer:
let numbers = Array(5..<15).filter { $0 % 2 == 0 }
print(numbers) -> Option D
Quick Check:
..< excludes end, filter selects even [OK]
Hint: Use ..< to exclude end, then filter even numbers [OK]
Common Mistakes:
Using ... to include 15 mistakenly
Using invalid .. operator
Not filtering correctly for even numbers
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.