Bird
0
0

You want to use a when expression to categorize ages into groups: "Child" for 0-12, "Teen" for 13-19, "Adult" for 20-64, and "Senior" for 65 and above. Which when expression correctly implements this?

hard📝 Application Q15 of 15
Kotlin - Control Flow as Expressions
You want to use a when expression to categorize ages into groups: "Child" for 0-12, "Teen" for 13-19, "Adult" for 20-64, and "Senior" for 65 and above. Which when expression correctly implements this?
Awhen (age) { in 0..12 -> "Child" in 13..19 -> "Teen" in 20..64 -> "Adult" else -> "Senior" }
Bwhen { age >= 0 && age <= 12 -> "Child" age >= 13 && age <= 19 -> "Teen" age >= 20 && age <= 64 -> "Adult" age >= 65 -> "Senior" else -> "Unknown" }
Cwhen (age) { 0..12 -> "Child" 13..19 -> "Teen" 20..64 -> "Adult" 65 -> "Senior" }
Dwhen (age) { in 0..12 -> "Child" in 13..19 -> "Teen" in 20..64 -> "Adult" in 65..100 -> "Senior" else -> "Unknown" }
Step-by-Step Solution
Solution:
  1. Step 1: Understand when with condition checks

    when { age >= 0 && age <= 12 -> "Child" age >= 13 && age <= 19 -> "Teen" age >= 20 && age <= 64 -> "Adult" age >= 65 -> "Senior" else -> "Unknown" } uses when without argument and checks conditions with boolean expressions, which is valid and flexible.
  2. Step 2: Check other options for correctness

    when (age) { in 0..12 -> "Child" in 13..19 -> "Teen" in 20..64 -> "Adult" else -> "Senior" } is valid but misses handling negative ages explicitly; when (age) { 0..12 -> "Child" 13..19 -> "Teen" 20..64 -> "Adult" 65 -> "Senior" } uses invalid syntax for ranges; when (age) { in 0..12 -> "Child" in 13..19 -> "Teen" in 20..64 -> "Adult" in 65..100 -> "Senior" else -> "Unknown" } limits "Senior" to 65-100 and has an else for unknown ages.
  3. Step 3: Choose the best option

    when { age >= 0 && age <= 12 -> "Child" age >= 13 && age <= 19 -> "Teen" age >= 20 && age <= 64 -> "Adult" age >= 65 -> "Senior" else -> "Unknown" } covers all age ranges clearly with conditions and includes an else for unknown ages.
  4. Final Answer:

    when { age >= 0 && age <= 12 -> "Child" age >= 13 && age <= 19 -> "Teen" age >= 20 && age <= 64 -> "Adult" age >= 65 -> "Senior" else -> "Unknown" } -> Option B
  5. Quick Check:

    Use condition checks inside when for flexible ranges [OK]
Quick Trick: Use condition checks inside when for complex ranges [OK]
Common Mistakes:
MISTAKES
  • Using invalid range syntax without 'in'
  • Not handling unexpected values with else
  • Limiting ranges incorrectly or missing conditions

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Kotlin Quizzes