[Kotlin] More Advanced "when" Constructs
Difference between "when" and Javascript "switch".
In Switch, you have to call "break"; but "when", you don't need to.
In Switch, the case expression can only be string / integer value; but "when" can be any expressions.
fun main() { val mode = 10 when (mode) { 5 -> println("mode is 5") 3*5 -> println("mode is 15") "Hey there".length -> println("value is string") in 1..10 -> println("mode is between 1 and 10") in 11..20 -> println("mode is between 11 and 20") in 21..30 -> println("mode is between 31 and 30") !in 1..9 -> println("mode is not between 1 and 9") } } // mode is between 1 and 10
fun main() { val random = Random().nextInt(50) + 1 when (random) { in 1..10 -> println("In 1 to 10: $random") in 11..20 -> println("In 11 to 20: $random") in 21..30 -> println("In 21 to 30: $random") in 31..40 -> println("In 31 to 40: $random") else -> println("Over 40: $random") } } // In 31 to 40: 35