Kotlin amikor kifejezés (példákkal)

Ebben a cikkben megtudhatja, hogy mikor épít Kotlinban különféle példák segítségével.

Kotlin amikor épít

A whenkotlini konstrukció a Java switch Statement helyettesítésére tekinthető. Értékeli a kódrészeket számos alternatíva között.

Példa: Egyszerű, amikor kifejezés

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

A program futtatásakor a kimenet valami hasonló lesz:

 Írja be a +, -, * vagy a / * eredmény = 60 értéket

A fenti program beviteli karakterláncot vesz a felhasználótól (Ajánlott olvasmány: Karakterlánc-bemenet beszerzése a felhasználótól Kotlinban). Tegyük fel, hogy a felhasználó belépett *. Ebben az esetben a * bkiértékelik a kifejezést , és az értéket a változó eredményhez rendelik.

Ha egyik ága feltételek teljesülnek (a felhasználó által bevitt mást +, -, * vagy /), elseág értékeljük.

A fenti példában whenkifejezést használtunk . whenKifejezésként azonban nem kötelező használni . Például,

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

A program futtatásakor a kimenet valami hasonló lesz:

 Írja be a +, -, * vagy / - 12 - 5 = 7 operátort 

Itt whennem kifejezés (a (z) visszatérési értéke whennem tartozik semmihez). Ebben az esetben a elsefióktelep nem kötelező.

Kevés lehetőség

Kombináljon két vagy több elágazási feltételt vesszővel. Például,

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

A program futtatásakor a kimenet a következő lesz:

 n 3-nál nagyobb negatív egész szám.

Ellenőrizze az értéket a tartományban. Például,

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

A program futtatásakor a kimenet a következő lesz:

 Pozitív szám 10 és 100 között (beleértve)

Ellenőrizze, hogy egy érték adott típusú-e.

Annak ellenőrzésére, hogy egy érték futásidejű-e egy adott típusú-e, használhatjuk a és az! Operátort. Például,

 amikor (x) (az Int -> print (x + 1) karakterlánc -> print (x.length + 1) az IntArray -> print (x.sum ())) 

Használjon kifejezéseket elágazási feltételként. Például,

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

A program futtatásakor a kimenet a következő lesz:

Bingó! Tizenegy van.

érdekes cikkek...