Bird
Raised Fist0
Kotlinprogramming~5 mins

When as expression returning value in Kotlin - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a when expression in Kotlin?
A when expression in Kotlin is a control structure that checks a value against multiple conditions and returns a result based on the first matching condition.
Click to reveal answer
beginner
How do you use when as an expression to return a value?
You assign the when expression to a variable. Each branch returns a value, and the whole when expression evaluates to that value.
Click to reveal answer
intermediate
What happens if no branch matches in a when expression used as a value?
If no branch matches, and there is no else branch, the code will not compile. You must provide an else branch to cover all cases.
Click to reveal answer
intermediate
Can when expression branches return different types?
No. All branches must return values of the same type or compatible types so the when expression has a consistent return type.
Click to reveal answer
beginner
Example: What is the value of result after this code?
val x = 2
val result = when (x) {
  1 -> "One"
  2 -> "Two"
  else -> "Other"
}
The value of result is "Two" because the when expression matches the case 2 and returns "Two".
Click to reveal answer
What must a when expression used as a value always include?
AA <code>break</code> statement
BA loop inside each branch
CA <code>return</code> keyword in each branch
DAn <code>else</code> branch to cover unmatched cases
What type of value does a when expression return?
AThe type common to all branch results
BThe type of the first branch only
CAlways a String
DNo value, it returns Unit
What happens if you omit the else branch in a when expression used as a value?
AThe program compiles but throws an error at runtime
BThe program does not compile
CThe first branch is used as default
DThe program compiles and returns null
Which of these is a valid way to assign a value using when expression?
Aval result = when (x) { 1: 10, 2: 20 }
Bval result = when (x) { 1 -> 10; 2 -> 20 }
Cval result = when (x) { 1 -> 10 2 -> 20 else -> 0 }
Dval result = when (x) { 1 => 10, 2 => 20 }
Can a when expression be used without an argument?
AYes, it can check arbitrary conditions in branches
BNo, it always requires an argument
COnly if used inside a function
DOnly with numeric arguments
Explain how a when expression returns a value in Kotlin and why the else branch is important.
Think about how the program decides what value to give back.
You got /4 concepts.
    Describe the rules for the types of values returned by each branch in a when expression used as a value.
    Consider what happens if branches return different kinds of values.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the when expression in Kotlin return when used as an expression?
      easy
      A. It returns a value based on the matched case.
      B. It always returns Unit (no value).
      C. It returns a Boolean indicating if a case matched.
      D. It throws an exception if no case matches.

      Solution

      1. Step 1: Understand when as expression

        In Kotlin, when can be used as an expression that returns a value depending on which case matches.
      2. Step 2: Compare with other options

        It does not always return Unit, nor a Boolean, and it requires an else branch to avoid exceptions, so it won't throw by default.
      3. Final Answer:

        It returns a value based on the matched case. -> Option A
      4. Quick Check:

        when returns value [OK]
      Hint: Remember: when returns the matched case value [OK]
      Common Mistakes:
      • Thinking when always returns Unit
      • Confusing when with if returning Boolean
      • Forgetting to add an else branch
      2. Which of the following is the correct syntax to use when as an expression returning a value in Kotlin?
      easy
      A. val result = when x { 1 -> "One"; else -> "Other" }
      B. val result = when (x) { x > 0 -> "Positive" else -> "Non-positive" }
      C. val result = when { x > 0 -> "Positive"; else -> "Non-positive" }
      D. val result = when (x) { in 1..10 -> "Small"; else -> "Large" }

      Solution

      1. Step 1: Check correct when syntax with argument

        val result = when (x) { in 1..10 -> "Small"; else -> "Large" } uses when (x) with cases separated by semicolons and an else branch, which is correct.
      2. Step 2: Identify syntax errors in other options

        val result = when { x > 0 -> "Positive"; else -> "Non-positive" } uses semicolons inside braces correctly; val result = when (x) { x > 0 -> "Positive" else -> "Non-positive" } misses semicolon before else; val result = when x { 1 -> "One"; else -> "Other" } misses parentheses around x.
      3. Final Answer:

        val result = when (x) { in 1..10 -> "Small"; else -> "Large" } -> Option D
      4. Quick Check:

        Correct when syntax uses parentheses and semicolons [OK]
      Hint: Use parentheses around variable and semicolons between cases [OK]
      Common Mistakes:
      • Omitting parentheses around the variable
      • Using commas instead of semicolons
      • Missing semicolon before else branch
      3. What is the output of the following Kotlin code?
      val x = 5
      val result = when {
        x < 0 -> "Negative"
        x == 0 -> "Zero"
        x in 1..10 -> "Small"
        else -> "Large"
      }
      println(result)
      medium
      A. Small
      B. Zero
      C. Negative
      D. Large

      Solution

      1. Step 1: Evaluate conditions in order

        x = 5 is not less than 0, not equal to 0, but is in 1..10 range, so the third case matches.
      2. Step 2: Determine returned value

        The matched case returns "Small", so result is "Small".
      3. Final Answer:

        Small -> Option A
      4. Quick Check:

        5 in 1..10 = true, returns "Small" [OK]
      Hint: Check conditions top to bottom; first true case returns value [OK]
      Common Mistakes:
      • Assuming else branch runs for 5
      • Confusing equality and range checks
      • Ignoring order of conditions
      4. Identify the error in this Kotlin code using when as an expression:
      val x = 3
      val result = when (x) {
        1 -> "One"
        2 -> "Two"
      }
      println(result)
      medium
      A. Incorrect variable name in when.
      B. Missing else branch causes compilation error.
      C. Semicolons missing between cases.
      D. Cannot use when as expression.

      Solution

      1. Step 1: Check completeness of when expression

        The when expression covers only 1 and 2, but x = 3 is not handled and no else branch is provided.
      2. Step 2: Understand Kotlin requirement for exhaustive when

        When used as an expression, when must be exhaustive, so missing else causes a compilation error.
      3. Final Answer:

        Missing else branch causes compilation error. -> Option B
      4. Quick Check:

        Exhaustive when needs else [OK]
      Hint: Always add else if not all cases covered [OK]
      Common Mistakes:
      • Ignoring missing else branch
      • Thinking semicolons are mandatory
      • Assuming when always compiles without else
      5. You want to assign a grade based on a score using when as an expression. Which code correctly returns "A" for scores 90 and above, "B" for 80-89, "C" for 70-79, and "F" otherwise?
      hard
      A. val grade = when (score) { score >= 90 -> "A" score >= 80 -> "B" score >= 70 -> "C" else -> "F" }
      B. val grade = when (score) { in 90..100 -> "A" in 80..89 -> "B" in 70..79 -> "C" else -> "F" }
      C. val grade = when { score >= 90 -> "A" score >= 80 -> "B" score >= 70 -> "C" else -> "F" }
      D. val grade = when { in 90..100 -> "A" in 80..89 -> "B" in 70..79 -> "C" else -> "F" }

      Solution

      1. Step 1: Understand when with condition expressions

        val grade = when { score >= 90 -> "A" score >= 80 -> "B" score >= 70 -> "C" else -> "F" } uses when without argument and conditions like score >= 90, which is valid and clear for ranges.
      2. Step 2: Check other options for errors

        val grade = when (score) { in 90..100 -> "A" in 80..89 -> "B" in 70..79 -> "C" else -> "F" } is correct syntax but uses ranges; val grade = when (score) { score >= 90 -> "A" score >= 80 -> "B" score >= 70 -> "C" else -> "F" } incorrectly uses conditions inside when(score) which expects values, not conditions; val grade = when { in 90..100 -> "A" in 80..89 -> "B" in 70..79 -> "C" else -> "F" } uses in without variable, which is invalid.
      3. Final Answer:

        val grade = when { score >= 90 -> "A" score >= 80 -> "B" score >= 70 -> "C" else -> "F" } -> Option C
      4. Quick Check:

        Use when without argument for conditions [OK]
      Hint: Use when without argument for condition checks [OK]
      Common Mistakes:
      • Using conditions inside when(variable)
      • Omitting variable in range checks
      • Misplacing in keyword
      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