Котлин при выражении (с примерами)

В этой статье вы узнаете, когда строить в Kotlin с помощью различных примеров.

Котлин при создании

whenКонструкт в Котлин можно рассматривать в качестве замены коммутатора Заявление Java. Он оценивает часть кода среди множества альтернатив.

Пример: Simple when Expression

 fun main(args: Array) ( val a = 12 val b = 5 println("Enter operator either +, -, * or /") val operator = readLine() val result = when (operator) ( "+" -> a + b "-" -> a - b "*" -> a * b "/" -> a / b else -> "$operator operator is invalid operator." ) println("result = $result") ) 

Когда вы запустите программу, результат будет примерно таким:

 Введите оператор +, -, * или / * результат = 60

Приведенная выше программа принимает строку ввода от пользователя (Рекомендуемая литература: получить ввод строки от пользователя в Kotlin). Допустим, пользователь вошел *. В этом случае выражение a * bоценивается, и значение присваивается переменной result.

Если ни одно из условий ветвления не удовлетворены (пользователь ввел ничего , кроме +, -, *, или /), elseфилиал оценивается.

В приведенном выше примере мы использовали whenв качестве выражения. Однако это не обязательно использовать whenв качестве выражения. Например,

 fun main(args: Array) ( val a = 12 val b = 5 println("Enter operator either +, -, * or /") val operator = readLine() when (operator) ( "+" -> println("$a + $b = $(a + b)") "-" -> println("$a - $b = $(a - b)") "*" -> println("$a * $b = $(a * b)") "/" -> println("$a / $b = $(a / b)") else -> println("$operator is invalid") ) )

Когда вы запустите программу, результат будет примерно таким:

 Введите оператор +, -, * или / - 12-5 = 7 

Здесь whenне является выражением (возвращаемое значение whenни чему не присваивается). В этом случае elseветка не обязательна.

Мало возможностей

Объедините два или более условия ветвления через запятую. Например,

 fun main(args: Array) ( val n = -1 when (n) ( 1, 2, 3 -> println("n is a positive integer less than 4.") 0 -> println("n is zero") -1, -2 -> println("n is a negative integer greater than 3.") ) )

Когда вы запустите программу, вывод будет:

 n - отрицательное целое число больше 3.

Проверить значение в диапазоне. Например,

 fun main(args: Array) ( val a = 100 when (a) ( in 1… 10 -> println("A positive number less than 11.") in 10… 100 -> println("A positive number between 10 and 100 (inclusive)") ) )

Когда вы запустите программу, вывод будет:

 Положительное число от 10 до 100 (включительно).

Проверьте, принадлежит ли значение определенному типу.

Чтобы проверить, принадлежит ли значение определенному типу во время выполнения, мы можем использовать операторы is и! Is. Например,

 когда (x) (is Int -> print (x + 1) is String -> print (x.length + 1) is IntArray -> print (x.sum ())) 

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

 fun main(args: Array) ( val a = 11 val n = "11" when (n) ( "cat" -> println("Cat? Really?") 12.toString() -> println("Close but not close enough.") a.toString() -> println("Bingo! It's eleven.") ) )

Когда вы запустите программу, вывод будет:

Бинго! Одиннадцать.

Интересные статьи...