Table of Contents
The when construct in Kotlin can be thought of as a replacement for Java switch Statement. It evaluates a section of code among many alternatives.Kotlin, when expression works as a switch statement of other language (Java, C++, C)
Using when as an Expression
Let’s see a simple example of when expression.
fun main(args: Array<String>){
var number = 4
var numberProvided = when(number) {
1 -> "One"
2 -> "Two"
3 -> "Three"
4 -> "Four"
5 -> "Five"
else -> "invalid number"
}
println("You provide $numberProvided")
}
Output :
You provide Four
Using when Without Expression
It is not mandatory to use when as an expression, it can be used as normally as it used in other language.
fun main(args: Array<String>){
var number = 4
when(number) {
1 -> println("One")
2 -> println("Two")
3 -> println("Three")
4 -> println("Four")
5 -> println("Five")
else -> println("invalid number")
}
}
Output :
Four
Multiple Statement of when Using Braces
We can use multiple statement enclosed within block of condition.
fun main(args: Array<String>){
var number = 1
when(number) {
1 -> {
println("Monday")
println("First day of the week")
}
7 -> println("Sunday")
else -> println("Other days")
}
}
Output :
Monday
First day of the week
Multiple branches of when
We can use multiple branches of condition separated with a comma. It is used, when we need to run a same logic for multiple choices.
fun main(args: Array<String>){
var number = 8
when(number) {
3, 4, 5, 6 ->
println("It is summer season")
7, 8, 9 ->
println("It is rainy season")
10, 11 ->
println("It is autumn season")
12, 1, 2 ->
println("It is winter season")
else -> println("invalid input")
}
}
Output :
It is rainy season
Using when in the range
The when expression also check the ranges of input provided in when condition. A range is created using .. (double dot) operator. The in operator is used to check if a value belongs to a range.
fun main(args: Array<String>){
var number = 7
when(number) {
in 1..5 -> println("Input is provided in the range 1 to 5")
in 6..10 -> println("Input is provided in the range 6 to 10")
else -> println("none of the above")
}
}
Output :
fun main(args: Array<String>){
var number = 7
when(number) {
in 1..5 -> println("Input is provided in the range 1 to 5")
in 6..10 -> println("Input is provided in the range 6 to 10")
else -> println("none of the above")
}
}
I hope you found what you were looking for from this tutorial. If you want more Kotlin tutorials like this, then do join our Telegram channel for future updates.
Thanks for reading, have a nice day 🙂