Bird
Raised Fist0
Kotlinprogramming~20 mins

Why expressions over statements matters in Kotlin - Challenge Your Understanding

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Expression Mastery in Kotlin
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this Kotlin code using expression style?

Consider this Kotlin code that uses expressions instead of statements. What will it print?

Kotlin
val result = if (5 > 3) "Yes" else "No"
println(result)
A5
BNo
Ctrue
DYes
Attempts:
2 left
💡 Hint

Remember, if in Kotlin can return a value.

🧠 Conceptual
intermediate
1:30remaining
Why prefer expressions over statements in Kotlin?

Which of the following is the best reason to prefer expressions over statements in Kotlin?

AExpressions allow assigning results directly to variables, making code concise and clear.
BExpressions cannot be used inside functions.
CStatements run faster than expressions in Kotlin.
DStatements are required for all control flow in Kotlin.
Attempts:
2 left
💡 Hint

Think about how expressions can produce values.

🔧 Debug
advanced
2:00remaining
What error occurs in this Kotlin code mixing statements and expressions?

Look at this Kotlin code snippet. What error will it cause?

Kotlin
val x: String = if (true) println("Hello") else println("Bye")
println(x)
ANo error, prints Hello and then Hello
BType mismatch: inferred type is Unit but String was expected
CNullPointerException at runtime
DSyntax error: missing else branch
Attempts:
2 left
💡 Hint

Consider what println returns and what if expression expects.

📝 Syntax
advanced
1:30remaining
Which Kotlin code correctly uses expression style for conditional assignment?

Choose the Kotlin code snippet that correctly uses expressions to assign a value based on a condition.

A
val message
if (score > 50) message = "Pass" else message = "Fail"
Bval message = if score > 50 { "Pass" } else { "Fail" }
Cval message = if (score > 50) "Pass" else "Fail"
Dval message = if (score > 50) { "Pass" } else
Attempts:
2 left
💡 Hint

Remember the syntax for if expressions in Kotlin.

🚀 Application
expert
2:00remaining
How many items are in the resulting list after using expression style map?

What is the size of the list result after running this Kotlin code?

Kotlin
val numbers = listOf(1, 2, 3, 4)
val result = numbers.map { if (it % 2 == 0) it * 2 else it }
println(result.size)
A4
B2
C0
DThrows an exception
Attempts:
2 left
💡 Hint

Think about how map transforms each item but keeps the list size.

Practice

(1/5)
1. Why are expressions preferred over statements in Kotlin programming?
easy
A. Because expressions return values and can be used anywhere a value is needed
B. Because statements are faster to execute
C. Because statements always cause errors
D. Because expressions do not require variables

Solution

  1. Step 1: Understand the difference between expressions and statements

    Expressions produce values and can be used wherever a value is expected, while statements perform actions but do not return values.
  2. Step 2: Identify why expressions are preferred

    Using expressions allows writing clearer and more concise code by directly returning values without extra variables or statements.
  3. Final Answer:

    Because expressions return values and can be used anywhere a value is needed -> Option A
  4. Quick Check:

    Expressions return values = C [OK]
Hint: Remember: expressions produce values, statements do not [OK]
Common Mistakes:
  • Confusing speed with value return
  • Thinking statements always cause errors
  • Believing expressions don't need variables
2. Which of the following is the correct Kotlin syntax for using an expression in an if statement?
easy
A. if (x > 0) { return "Positive" } else { return "Non-positive" }
B. if x > 0 then "Positive" else "Non-positive"
C. val result = if (x > 0) "Positive" else "Non-positive"
D. val result = if x > 0 { "Positive" } else { "Non-positive" }

Solution

  1. Step 1: Review Kotlin's expression syntax for if

    Kotlin allows if to be used as an expression that returns a value, using parentheses and else branch.
  2. Step 2: Identify the correct syntax

    val result = if (x > 0) "Positive" else "Non-positive" correctly assigns the result of the if expression to a variable. Other options have syntax errors or incorrect usage.
  3. Final Answer:

    val result = if (x > 0) "Positive" else "Non-positive" -> Option C
  4. Quick Check:

    Correct if expression syntax = B [OK]
Hint: Use parentheses and else for if expressions [OK]
Common Mistakes:
  • Omitting parentheses around condition
  • Using incorrect keywords like 'then'
  • Trying to assign without else branch
3. What will be the output of this Kotlin code?
val max = if (10 > 5) 10 else 5
println(max)
medium
A. 5
B. 10
C. true
D. Compilation error

Solution

  1. Step 1: Evaluate the if expression condition

    The condition 10 > 5 is true, so the expression returns 10.
  2. Step 2: Assign and print the value

    The variable max is assigned 10, and println(max) outputs 10.
  3. Final Answer:

    10 -> Option B
  4. Quick Check:

    Condition true returns 10 = A [OK]
Hint: Check condition result to find expression value [OK]
Common Mistakes:
  • Confusing output with false branch
  • Expecting boolean output
  • Thinking code causes error
4. Identify the error in this Kotlin code snippet:
val result
if (x > 0) {
  result = "Positive"
} else {
  result = "Non-positive"
}
println(result)
medium
A. No error, code runs fine
B. Missing parentheses in if condition
C. Cannot assign string to 'result'
D. Variable 'result' must be initialized before use

Solution

  1. Step 1: Check variable declaration and initialization

    The variable result is declared without initialization, which is not allowed for val in Kotlin.
  2. Step 2: Understand Kotlin's val initialization rules

    val must be initialized at declaration or in constructor; here it is uninitialized and assigned later, causing error.
  3. Final Answer:

    Variable 'result' must be initialized before use -> Option D
  4. Quick Check:

    Uninitialized val causes error = D [OK]
Hint: val needs immediate initialization or constructor assignment [OK]
Common Mistakes:
  • Thinking val can be assigned later
  • Ignoring initialization errors
  • Assuming if syntax is wrong
5. How can you rewrite this Kotlin code using expressions to make it shorter and clearer?
var status: String
if (score >= 60) {
  status = "Pass"
} else {
  status = "Fail"
}
println(status)
hard
A. val status = if (score >= 60) "Pass" else "Fail" println(status)
B. if (score >= 60) println("Pass") else println("Fail")
C. var status = "Pass" if (score >= 60) else "Fail" println(status)
D. val status status = if score >= 60 then "Pass" else "Fail" println(status)

Solution

  1. Step 1: Identify the current code structure

    The code uses a statement-based if to assign status variable based on score.
  2. Step 2: Use if as an expression for assignment

    Kotlin allows if to return a value, so we can assign status directly with the expression, making code shorter and clearer.
  3. Final Answer:

    val status = if (score >= 60) "Pass" else "Fail" println(status) -> Option A
  4. Quick Check:

    Use if expression for assignment = A [OK]
Hint: Assign if result directly to variable [OK]
Common Mistakes:
  • Using invalid syntax for if expression
  • Trying to assign without else branch
  • Using statements instead of expressions
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