📖 Scenario: You are building a simple program to categorize ages into life stages using Swift's switch statement with where clauses. This helps you understand how to add extra conditions to each case.
🎯 Goal: Create a Swift program that uses a switch statement with where clauses to print the life stage of a person based on their age.
📋 What You'll Learn
Create an age variable with the value 25
Create a switch statement on age
Use where clauses in case statements to check age ranges
Print the correct life stage for the given age
💡 Why This Matters
🌍 Real World
Using switch with where clauses helps you handle multiple conditions clearly, like categorizing ages, grades, or other ranges in apps.
💼 Career
Understanding switch with where clauses is useful for Swift developers building iOS apps that need clear, readable decision-making code.
Progress0 / 4 steps
1
Create the age variable
Create a variable called age and set it to 25.
Swift
Hint
Use var age = 25 to create the variable.
2
Start the switch statement on age
Write a switch statement on the variable age.
Swift
Hint
Use switch age { } to start the switch statement.
3
Add case statements with where clauses
Inside the switch on age, add these case statements with where clauses: 1. case let x where x < 13: print "Child" 2. case let x where x < 20: print "Teenager" 3. case let x where x < 65: print "Adult" 4. default: print "Senior"
Swift
Hint
Use case let x where condition: to add conditions inside switch cases.
4
Run the program to print the life stage
Run the program so it prints the life stage for the age 25.
Swift
Hint
Just run the program. It will print the life stage automatically.
Practice
(1/5)
1.
What does a where clause do in a Swift switch statement?
easy
A. It defines the default case in the switch statement.
B. It adds an extra condition to a case to check before matching.
C. It repeats the case multiple times automatically.
D. It changes the type of the value being switched.
Solution
Step 1: Understand the role of where clause
The where clause adds an extra condition to a case in a switch statement.
Step 2: Compare with other options
Other options describe unrelated behaviors like default case or type changes, which are not what where does.
Final Answer:
It adds an extra condition to a case to check before matching. -> Option B
Quick Check:
where clause = extra condition [OK]
Hint: Remember: where adds conditions to cases [OK]
Common Mistakes:
Thinking where defines default case
Confusing where with case repetition
Assuming where changes variable types
2.
Which of the following is the correct syntax for a switch case with a where clause in Swift?
let number = 10
switch number {
case let x where x > 5:
print("Greater than 5")
default:
print("5 or less")
}
easy
A. case let x if x > 5:
B. case x where x > 5:
C. case let x where x > 5:
D. case x if x > 5:
Solution
Step 1: Identify correct pattern binding syntax
In Swift, to bind a value in a case, use let x before the where clause.
Step 2: Check the where clause usage
The where clause follows the pattern binding, so case let x where x > 5: is correct.
Final Answer:
case let x where x > 5: -> Option C
Quick Check:
Pattern binding with let + where clause = case let x where x > 5: [OK]
Hint: Use 'let' before variable, then 'where' for condition [OK]
Common Mistakes:
Omitting 'let' before variable
Using 'if' instead of 'where'
Placing 'where' before 'let'
3.
What will be printed by this Swift code?
let age = 20
switch age {
case let x where x < 13:
print("Child")
case let x where x >= 13 && x < 20:
print("Teenager")
case let x where x >= 20:
print("Adult")
default:
print("Unknown")
}
medium
A. Adult
B. Teenager
C. Child
D. Unknown
Solution
Step 1: Check the value of age
The variable age is 20.
Step 2: Evaluate each case condition
First case: x < 13? No (20 < 13 is false). Second case: 13 <= x < 20? No (20 < 20 is false). Third case: x >= 20? Yes (20 >= 20 is true).
Final Answer:
Adult -> Option A
Quick Check:
age 20 matches 'Adult' case [OK]
Hint: Check conditions in order; first true case runs [OK]
Common Mistakes:
Choosing 'Teenager' because 20 is close to 19
Ignoring >= and < operators
Forgetting switch stops at first match
4.
Identify the error in this Swift switch statement using where clauses:
let score = 85
switch score {
case let x where x > 90:
print("Excellent")
case let x where x >= 80:
print("Good")
case let x where x >= 70:
print("Average")
case _:
print("Poor")
}
medium
A. Using let binding is not allowed with where.
B. Missing default case for unmatched values.
C. Incorrect syntax for where clause.
D. The cases overlap and order causes wrong matching.
Solution
Step 1: Analyze case conditions and order
The cases check if score > 90, then >= 80, then >= 70. Since 85 >= 80 and also >= 70, the second case matches first.
Step 2: Understand overlapping conditions effect
Because cases overlap, order matters. If order was different, output might change. This can cause confusion or wrong matching.
Final Answer:
The cases overlap and order causes wrong matching. -> Option D
Quick Check:
Overlapping where clauses need careful order [OK]
Hint: Order cases from most specific to least specific [OK]
Common Mistakes:
Ignoring overlapping conditions
Assuming default case is mandatory
Thinking let binding disallowed with where
5.
You want to categorize a number as "Small", "Medium", or "Large" using a switch with where clauses. The rules are:
Small: less than 10
Medium: between 10 and 100 inclusive
Large: greater than 100
Which switch statement correctly implements this?
let value = 50
switch value {
case let x where x < 10:
print("Small")
case let x where x >= 10 && x <= 100:
print("Medium")
case let x where x > 100:
print("Large")
default:
print("Unknown")
}
hard
A. Correctly categorizes all values as per rules.
B. Fails to categorize values equal to 10 or 100.
C. Has syntax errors in where clauses.
D. Default case will never be reached.
Solution
Step 1: Check each case condition against rules
First case: x < 10 matches "Small". Second case: x >= 10 and x <= 100 matches "Medium". Third case: x > 100 matches "Large".
Step 2: Verify coverage and syntax
All values fit one of these cases. Syntax is correct with let x where clauses. Default is fallback but not needed here.
Final Answer:
Correctly categorizes all values as per rules. -> Option A
Quick Check:
Conditions cover all ranges correctly [OK]
Hint: Use clear, non-overlapping where conditions [OK]
Common Mistakes:
Overlapping ranges causing wrong matches
Missing <= or >= in conditions
Forgetting to bind variable with let
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.