Bird
Raised Fist0
Swiftprogramming~10 mins

Optional binding with if let 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 safely unwrap the optional using if let.

Swift
var name: String? = "Alice"
if [1] unwrappedName = name {
    print("Hello, \(unwrappedName)!")
}
Drag options to blanks, or click blank then click option'
Alet
Bvar
Cis
Dguard
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'var' instead of 'let' in the if statement.
Using 'is' which is for type checking, not unwrapping.
2fill in blank
medium

Complete the code to unwrap the optional and print the value.

Swift
var age: Int? = 30
if let unwrappedAge = [1] {
    print("Age is \(unwrappedAge)")
}
Drag options to blanks, or click blank then click option'
AunwrappedAge
Bage
CoptionalAge
Dself.age
Attempts:
3 left
💡 Hint
Common Mistakes
Using the unwrapped variable name inside the if let condition.
Using a variable name that does not exist.
3fill in blank
hard

Fix the error in the optional binding syntax.

Swift
var city: String? = "Paris"
if [1] city = city {
    print("City is \(city)")
}
Drag options to blanks, or click blank then click option'
Ais
Bvar
Cguard
Dlet
Attempts:
3 left
💡 Hint
Common Mistakes
Using '=' without 'let' or 'var' in the if statement.
Using 'is' which is for type checking.
4fill in blank
hard

Fill both blanks to unwrap two optionals and print their values.

Swift
var firstName: String? = "John"
var lastName: String? = "Doe"
if [1] first = firstName, [2] last = lastName {
    print("Full name: \(first) \(last)")
}
Drag options to blanks, or click blank then click option'
Alet
Bvar
Cis
Dguard
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing 'let' and 'var' in the same if statement.
Using 'is' instead of 'let' for binding.
5fill in blank
hard

Fill all three blanks to unwrap an optional, check a condition, and print the result.

Swift
var score: Int? = 85
if [1] unwrappedScore = score, unwrappedScore [2] 80, unwrappedScore [3] 100 {
    print("Great score: \(unwrappedScore)")
}
Drag options to blanks, or click blank then click option'
Alet
B>
C<=
Dvar
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'var' instead of 'let' for unwrapping.
Using wrong comparison operators.

Practice

(1/5)
1. What does if let do in Swift when working with optionals?
easy
A. It creates a new optional variable.
B. It forces the optional to be nil.
C. It safely unwraps an optional if it contains a value.
D. It converts an optional to a string.

Solution

  1. Step 1: Understand optional values

    Optionals may contain a value or nil, so we must check before using them.
  2. Step 2: Role of if let

    if let checks if the optional has a value and unwraps it safely for use inside the block.
  3. Final Answer:

    It safely unwraps an optional if it contains a value. -> Option C
  4. Quick Check:

    if let unwraps optionals safely [OK]
Hint: Remember: if let unwraps only when value exists [OK]
Common Mistakes:
  • Thinking if let forces nil
  • Confusing unwrapping with conversion
  • Assuming it creates new optionals
2. Which of the following is the correct syntax for optional binding using if let in Swift?
easy
A. if let value = optionalValue { print(value) }
B. if optionalValue let value { print(value) }
C. if let = optionalValue value { print(value) }
D. if let optionalValue = value { print(value) }

Solution

  1. Step 1: Identify correct if let syntax

    The correct syntax is if let newName = optionalValue to unwrap safely.
  2. Step 2: Check each option

    Only if let value = optionalValue { print(value) } matches the correct syntax; others have wrong order or keywords.
  3. Final Answer:

    if let value = optionalValue { print(value) } -> Option A
  4. Quick Check:

    Correct if let syntax = if let value = optionalValue { print(value) } [OK]
Hint: Remember: if let newName = optional [OK]
Common Mistakes:
  • Swapping variable and optional names
  • Missing equal sign
  • Wrong keyword order
3. What will be printed by the following Swift code?
var name: String? = "Alice"
if let unwrappedName = name {
    print("Hello, \(unwrappedName)!")
} else {
    print("No name found.")
}
medium
A. Hello, nil!
B. No name found.
C. Optional("Alice")
D. Hello, Alice!

Solution

  1. Step 1: Check the optional value

    The variable name contains the string "Alice", not nil.
  2. Step 2: Apply if let unwrapping

    Since name has a value, unwrappedName gets "Alice" and prints the greeting.
  3. Final Answer:

    Hello, Alice! -> Option D
  4. Quick Check:

    Optional with value prints unwrapped string [OK]
Hint: If optional has value, if let block runs [OK]
Common Mistakes:
  • Printing optional directly instead of unwrapped
  • Confusing else block execution
  • Assuming nil prints as string
4. Identify the error in this Swift code using optional binding:
var age: Int? = 25
if let age = age {
    print("Age is \(age)")
} else {
    print("Age not available")
}
medium
A. Variable shadowing causes confusion but code runs fine.
B. Missing unwrap operator (!) causes error.
C. Syntax error: should use if let age == age.
D. Optional binding cannot be used with Int optionals.

Solution

  1. Step 1: Analyze variable names

    The inner age in if let shadows the outer optional age, but this is allowed.
  2. Step 2: Check for syntax or runtime errors

    The code compiles and runs correctly, printing "Age is 25".
  3. Final Answer:

    Variable shadowing causes confusion but code runs fine. -> Option A
  4. Quick Check:

    Shadowing allowed; no syntax error [OK]
Hint: Shadowing is allowed; no error if names repeat [OK]
Common Mistakes:
  • Thinking shadowing causes error
  • Adding unnecessary unwrap operator
  • Misusing equality operator in if let
5. Given a dictionary [String: String?] where values are optionals, how can you use if let to safely print all non-nil values?
hard
A. for (key, value) in dict { print(key + ": " + value!) }
B. for (key, value) in dict { if let val = value { print(key + ": " + val) } }
C. for (key, value) in dict { if value != nil { print(key + ": " + value) } }
D. for (key, value) in dict { if let value { print(key + ": " + value) } }

Solution

  1. Step 1: Understand dictionary with optional values

    Values are optionals, so we must unwrap before printing to avoid errors.
  2. Step 2: Use if let to unwrap safely

    for (key, value) in dict { if let val = value { print(key + ": " + val) } } unwraps value into val safely and prints only non-nil values.
  3. Step 3: Check other options

    for (key, value) in dict { print(key + ": " + value!) } force unwraps which can crash; C tries to print optional directly; D syntax is invalid.
  4. Final Answer:

    for (key, value) in dict { if let val = value { print(key + ": " + val) } } -> Option B
  5. Quick Check:

    Use if let val = value to unwrap optionals [OK]
Hint: Use if let to unwrap optionals before printing [OK]
Common Mistakes:
  • Force unwrapping optionals causing crashes
  • Trying to print optional directly
  • Incorrect if let syntax without variable name
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