Выражение when в Kotlin с примерами

В Kotlin when является условным выражением, которое возвращает значение и заменяет оператор switch. Выражение when работает как оператор переключения другого языка (Java, C++, C).

Использование when в качестве выражения

Давайте посмотрим на простой пример выражения when.

 
fun main(args: Array){ 
    var number = 4 
    var numberProvided = when(number) { 
        1 -> "One" 
        2 -> "Two" 
        3 -> "Three" 
        4 -> "Four" 
        5 -> "Five" 
        else -> "invalid number" 
    } 
    println("You provide $numberProvided") 
} 

Выход:

You provide Four 

Использование без выражения

Не обязательно использовать when в качестве выражения в Котлин, его можно использовать так же, как и в другом языке.

Пример:

 
fun main(args: Array){ 
 
    var number = 4 
    when(number) { 
        1 -> println("One") 
        2 -> println("Two") 
        3 -> println("Three") 
        4 -> println("Four") 
        5 -> println("Five") 
        else -> println("invalid number") 
    } 
 
} 

Выход:

Four 

Множественное утверждение в фигурных скобках

Мы можем использовать несколько операторов, заключенных в блок условия.

Например:

 
fun main(args: Array){ 
    var number = 1 
    when(number) { 
        1 -> { 
            println("Monday") 
            println("First day of the week") 
        } 
        7 -> println("Sunday") 
        else -> println("Other days") 
    } 
} 

Выход:

Monday 
First day of the week 

Несколько ветвей when

Мы можем использовать несколько ветвей условия, разделенных запятой. Они используются, когда нам нужно запустить одну и ту же логику для нескольких вариантов.

 
fun main(args: Array){ 
    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") 
    } 
} 

Выход:

It is rainy season 

When в диапазоне

Выражение when также проверяет диапазоны ввода, указанные в условии when. Диапазон создается с помощью оператора ..(двойная точка). Оператор in используется для проверки того, принадлежит ли значение диапазону.

Пример:

 
fun main(args: Array){ 
    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") 
    } 
} 

Выход:

Input is provided in the range 6 to 10 

Оцените статью