Bird
Raised Fist0
Kotlinprogramming~10 mins

Why expressions over statements matters in Kotlin - Test Your Understanding

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to assign the maximum of two numbers to max using an expression.

Kotlin
val max = if (a > b) [1] else b
Drag options to blanks, or click blank then click option'
Aa
B0
Ca + b
Db
Attempts:
3 left
💡 Hint
Common Mistakes
Using if as a statement without returning a value.
Assigning a fixed value like 0 instead of a.
2fill in blank
medium

Complete the code to assign the result of the expression that returns the length of the string or 0 if the string is null.

Kotlin
val length = str?.length ?: [1]
Drag options to blanks, or click blank then click option'
Anull
Bstr.length
C-1
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using null as default which causes type mismatch.
Using str.length which can cause a null pointer exception.
3fill in blank
hard

Fix the error in the expression that tries to assign the result of a when expression to a variable.

Kotlin
val result = when (x) {
    1 -> "One"
    2 -> "Two"
    else -> [1]
}
Drag options to blanks, or click blank then click option'
Anull
B"Other"
Cprint("Other")
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Using print("Other") which returns Unit, not String.
Returning null which may cause type mismatch.
4fill in blank
hard

Fill both blanks to create a map of words to their lengths, including only words longer than 3 characters.

Kotlin
val lengths = words.filter { word -> word.length > 3 }.map { word -> [1] to [2] }.toMap()
Drag options to blanks, or click blank then click option'
Aword
Bword.length
Cword.uppercase()
Dword.count()
Attempts:
3 left
💡 Hint
Common Mistakes
Using word.uppercase() as key which changes the word.
Using word.count() which is not a Kotlin String method.
5fill in blank
hard

Fill all three blanks to create a map of uppercase words to their lengths, including only words longer than 4 characters.

Kotlin
val result = words.filter { word -> word.length [3] 4 }.map { word -> [1] to [2] }.toMap()
Drag options to blanks, or click blank then click option'
Aword.uppercase()
Bword.length
C>
Dword
Attempts:
3 left
💡 Hint
Common Mistakes
Using word instead of uppercase for keys.
Using < instead of > for filtering.

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