Kotlin Conditional Statements When-statement with enums


Example

when can be used to match enum values:

enum class Day {
    Sunday,
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday
}

fun doOnDay(day: Day) {
    when(day) {
        Day.Sunday ->     // Do something
        Day.Monday, Day.Tuesday ->     // Do other thing
        Day.Wednesday ->  // ...
        Day.Thursday ->   // ...
        Day.Friday ->     // ...
        Day.Saturday ->   // ...
    }
}

As you can see in second case line (Monday and Tuedsay) it is also possible to combine two or more enum values.

If your cases are not exhaustive the compile will show an error. You can use else to handle default cases:

fun doOnDay(day: Day) {
    when(day) {
        Day.Monday ->     // Work
        Day.Tuesday ->    // Work hard
        Day.Wednesday ->  // ...
        Day.Thursday ->   //
        Day.Friday ->     //
        else ->           // Party on weekend
    }
} 

Though the same can be done using if-then-else construct, when takes care of missing enum values and makes it more natural.

Check here for more information about kotlin enum