Kotlin when Statement

Kotlin when Statement

In Kotlin, when is used for decision making. It is an advanced and more powerful replacement for the traditional switch statement.
when can be used as a statement or as an expression.


1. Simple when Example

fun main() {
val day = 3
when (day) {
1 -> println(“Monday”)
2 -> println(“Tuesday”)
3 -> println(“Wednesday”)
4 -> println(“Thursday”)
5 -> println(“Friday”)
else -> println(“Invalid day”)
}
}


2. when as an Expression (Return Value)

fun main() {
val num = 2
val result = when (num) {
1 -> “One”
2 -> “Two”
3 -> “Three”
else -> “Unknown”
}

println(result)
}


3. Multiple Conditions in One Branch

fun main() {
val day = 6
when (day) {
1, 2, 3, 4, 5 -> println(“Weekday”)
6, 7 -> println(“Weekend”)
else -> println(“Invalid”)
}
}


4. Using Ranges in when

fun main() {
val marks = 85
when (marks) {
in 90..100 -> println(“Grade A”)
in 75..89 -> println(“Grade B”)
in 50..74 -> println(“Grade C”)
else -> println(“Fail”)
}
}


5. when Without Argument

Used as an alternative to if-else ladder.

fun main() {
val age = 20
when {
age >= 18 -> println(“Adult”)
age < 18 -> println(“Minor”)
else -> println(“Invalid age”)
}
}


6. when with Strings

fun main() {
val color = "Red"
when (color) {
“Red” -> println(“Stop”)
“Green” -> println(“Go”)
“Yellow” -> println(“Wait”)
else -> println(“Unknown color”)
}
}


7. when with Boolean

fun main() {
val isLoggedIn = true
when (isLoggedIn) {
true -> println(“Welcome user”)
false -> println(“Please login”)
}
}


8. Smart Cast in when

fun main() {
val obj: Any = "Kotlin"
when (obj) {
is String -> println(“String length = ${obj.length}“)
is Int -> println(“Integer value = $obj“)
else -> println(“Unknown type”)
}
}


Summary

  • when replaces switch

  • Can be used as statement or expression

  • Supports ranges, multiple values, types, and conditions

  • Cleaner and more powerful than if-else

You may also like...