Bird
Raised Fist0
iOS Swiftmobile~20 mins

Variables (let, var) and type inference in iOS Swift - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Swift Variables Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
📝 Syntax
intermediate
1:30remaining
What is the output of this Swift code snippet?
Consider the following Swift code:
let x = 10
var y = 5
y = y + x
print(y)

What will be printed?
iOS Swift
let x = 10
var y = 5
y = y + x
print(y)
A10
B15
C5
DCompilation error
Attempts:
2 left
💡 Hint
Remember that 'let' defines a constant and 'var' defines a variable that can change.
❓ ui_behavior
intermediate
1:30remaining
What happens if you try to change a 'let' constant in Swift?
Given this code:
let name = "Alice"
name = "Bob"

What will happen when you try to compile this?
iOS Swift
let name = "Alice"
name = "Bob"
ARuntime error when assigning "Bob"
BThe value of 'name' changes to "Bob"
CCompilation error because 'name' is a constant
DThe code runs but prints "Alice"
Attempts:
2 left
💡 Hint
Think about what 'let' means in Swift.
🧠 Conceptual
advanced
1:30remaining
What type does Swift infer for this variable?
Look at this Swift code:
var score = 42

What type does Swift assign to 'score'?
iOS Swift
var score = 42
AInt
BDouble
CString
DAny
Attempts:
2 left
💡 Hint
Swift infers types based on the assigned value.
❓ lifecycle
advanced
1:30remaining
What is the value of 'message' after this code runs?
Consider this Swift code:
var message = "Hello"
let greeting = message
message = "Hi"
print(greeting)

What will be printed?
iOS Swift
var message = "Hello"
let greeting = message
message = "Hi"
print(greeting)
AHello
BHi
CCompilation error
DRuntime error
Attempts:
2 left
💡 Hint
Think about how assignment copies values for strings in Swift.
🔧 Debug
expert
2:00remaining
Which option causes a compile-time error?
Which of these Swift code snippets will NOT compile?
A
var text = "Hello"
text = "World"
Blet pi = 3.14
C
var flag: Bool
flag = true
D
let number: Int = 10
number = 20
Attempts:
2 left
💡 Hint
Remember that 'let' constants cannot be reassigned.

Practice

(1/5)
1. What does the keyword let do in Swift?
easy
A. Creates a constant that cannot be changed
B. Creates a variable that can be changed
C. Declares a function
D. Defines a class

Solution

  1. Step 1: Understand let usage

    The keyword let is used to declare constants in Swift, which means their value cannot be changed after assignment.
  2. Step 2: Compare with var

    Unlike var, which declares variables that can change, let makes the value fixed.
  3. Final Answer:

    Creates a constant that cannot be changed -> Option A
  4. Quick Check:

    let = constant [OK]
Hint: Remember: let = fixed value, var = changeable value [OK]
Common Mistakes:
  • Confusing let with var
  • Thinking let allows value changes
  • Mixing let with function declaration
2. Which of the following is the correct way to declare a variable named score with initial value 10 in Swift?
easy
A. let score = 10
B. var score = 10
C. score var = 10
D. variable score = 10

Solution

  1. Step 1: Identify variable declaration syntax

    In Swift, var is used to declare variables that can change, and the syntax is var name = value.
  2. Step 2: Check each option

    var score = 10 uses correct syntax. let score = 10 declares a constant, not a variable. score var = 10 and variable score = 10 are invalid syntax.
  3. Final Answer:

    var score = 10 -> Option B
  4. Quick Check:

    Variable declaration = var name = value [OK]
Hint: Use var for variables, let for constants [OK]
Common Mistakes:
  • Using let instead of var for variables
  • Incorrect keyword order
  • Using non-existent keywords like variable
3. What will be the output of this Swift code?
var name = "Alice"
name = "Bob"
print(name)
medium
A. Error: Cannot assign to let constant
B. Alice
C. Bob
D. nil

Solution

  1. Step 1: Understand variable reassignment

    The variable name is declared with var, so it can be changed after initial assignment.
  2. Step 2: Trace the code execution

    Initially, name is "Alice". Then it is reassigned to "Bob". The print statement outputs the current value, "Bob".
  3. Final Answer:

    Bob -> Option C
  4. Quick Check:

    var allows change, so output is reassigned value [OK]
Hint: var means value can change, so print latest value [OK]
Common Mistakes:
  • Thinking let was used and reassignment causes error
  • Expecting original value to print
  • Confusing variable with constant
4. What is wrong with this Swift code?
let age = 25
age = 30
medium
A. Cannot assign to value: 'age' is a constant
B. Missing semicolon after 25
C. Variable 'age' not declared
D. Syntax error: let cannot be used

Solution

  1. Step 1: Identify declaration type

    age is declared with let, making it a constant.
  2. Step 2: Understand reassignment error

    Trying to assign a new value to a constant causes a compile-time error: "Cannot assign to value: 'age' is a constant".
  3. Final Answer:

    Cannot assign to value: 'age' is a constant -> Option A
  4. Quick Check:

    let constants cannot be changed [OK]
Hint: let means constant; reassignment causes error [OK]
Common Mistakes:
  • Thinking semicolon is required
  • Confusing let with var
  • Ignoring reassignment rules
5. Consider this Swift code:
var x = 5
let y = x
x = 10
print(y)

What will be printed and why?
hard
A. 10, because y tracks x's value
B. nil, because y is not initialized
C. Error, cannot assign var to let
D. 5, because y is a constant copy of x's initial value

Solution

  1. Step 1: Understand value assignment

    Variable x is 5 initially. y is a constant assigned the current value of x, which is 5.
  2. Step 2: Reassign x and check y

    Changing x to 10 does not affect y, because y holds its own copy of the value 5.
  3. Final Answer:

    5, because y is a constant copy of x's initial value -> Option D
  4. Quick Check:

    let copies value; later changes to var don't affect it [OK]
Hint: let copies value at assignment; later var changes don't affect it [OK]
Common Mistakes:
  • Thinking y updates when x changes
  • Expecting runtime error on assignment
  • Confusing reference and value types
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