Theoretical Paper
- Computer Organization
- Data Structure
- Digital Electronics
- Object Oriented Programming
- Discrete Mathematics
- Graph Theory
- Operating Systems
- Software Engineering
- Computer Graphics
- Database Management System
- Operation Research
- Computer Networking
- Image Processing
- Internet Technologies
- Micro Processor
- E-Commerce & ERP
- Dart Programming
- Flutter Tutorial
- Numerical Methods Tutorials
- Flutter Tutorials
- Kotlin Tutorial
Practical Paper
Industrial Training
Kotlin when Expression
Kotlin, when expression is a conditional expression which returns the value. Kotlin, when expression is replacement of switch statement. 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") } 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.
For Example
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") } } 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.
For Example
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") } } 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") } } 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.
For Example:
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") } } 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:
Input is provided in the range 6 to 10