Kotlin when Expression (z przykładami)

W tym artykule dowiesz się, kiedy konstruujesz w Kotlinie, korzystając z różnych przykładów.

Kotlin, gdy Construct

whenKonstrukt w Kotlin mogą być traktowane jako zamiennik dla instrukcji switch Javy. Ocenia część kodu spośród wielu alternatyw.

Przykład: proste, gdy wyrażenie

 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") ) 

Po uruchomieniu programu wynik będzie wyglądał mniej więcej tak:

 Wpisz operator +, -, * lub / * wynik = 60

Powyższy program pobiera ciąg wejściowy od użytkownika (zalecana lektura: pobierz dane wejściowe od użytkownika w Kotlinie). Załóżmy, że użytkownik wszedł *. W tym przypadku wyrażenie a * bjest oceniane, a wartość jest przypisywana do zmiennej wynik.

Jeśli żaden z warunków branży są spełnione (użytkownik wprowadził niczego z wyjątkiem +, -, * lub /), elsegałąź jest oceniana.

W powyższym przykładzie użyliśmy whenjako wyrażenia. Jednak używanie whenjako wyrażenia nie jest obowiązkowe . Na przykład,

 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") ) )

Po uruchomieniu programu wynik będzie wyglądał mniej więcej tak:

 Wpisz operator +, -, * lub / - 12 - 5 = 7 

Tutaj whennie jest wyrażeniem (wartość zwracana z whennie jest do niczego przypisana). W takim przypadku elseoddział nie jest obowiązkowy.

Niewiele możliwości

Połącz dwa lub więcej warunków rozgałęzienia przecinkiem. Na przykład,

 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.") ) )

Po uruchomieniu programu wynik będzie następujący:

 n jest ujemną liczbą całkowitą większą niż 3.

Sprawdź wartość w zakresie. Na przykład,

 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)") ) )

Po uruchomieniu programu wynik będzie następujący:

 Liczba dodatnia od 10 do 100 (włącznie)

Sprawdź, czy wartość jest określonego typu.

Aby sprawdzić, czy wartość jest określonego typu w czasie wykonywania, możemy użyć operatora is i! Is. Na przykład,

 kiedy (x) (to Int -> print (x + 1) to String -> print (x.length + 1) to IntArray -> print (x.sum ())) 

Użyj wyrażeń jako warunku rozgałęzienia. Na przykład,

 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.") ) )

Po uruchomieniu programu wynik będzie następujący:

Bingo! Jest jedenaście.

Interesujące artykuły...