Kotlin pri výraze (s príkladmi)

V tomto článku sa dozviete, kedy konštruovať v Kotline pomocou rôznych príkladov.

Kotlin keď Construct

whenKonštrukt v Kotlin si možno predstaviť ako náhrada za switch Java. Vyhodnocuje časť kódu z mnohých alternatív.

Príklad: Jednoduché pri výraze

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

Keď spustíte program, výstup bude asi ako:

 Zadajte operátor +, -, * alebo / * výsledok = 60

Vyššie uvedený program preberá vstupný reťazec od používateľa (odporúčané čítanie: Získajte reťazcový vstup od používateľa v Kotline). Predpokladajme, že užívateľ vstúpil *. V takom prípade a * bsa vyhodnotí výraz a hodnota sa priradí premennému výsledku.

Ak žiadna z podmienok pobočiek sú splnené (užívateľ zadal nič iné, než +, -* alebo /), elseodbor je hodnotená.

Vo vyššie uvedenom príklade sme použili whenako výraz. Nie je však povinné používať ho whenako výraz. Napríklad,

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

Keď spustíte program, výstup bude asi ako:

 Zadajte operátor buď +, -, * alebo / - 12 - 5 = 7 

Tu whennejde o výraz (návratová hodnota z whennie je priradená k ničomu). V takom prípade elsenie je pobočka povinná.

Málo možností

Spojte dve alebo viac podmienok vetvy s čiarkou. Napríklad,

 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 spustení programu bude výstup:

 n je záporné celé číslo väčšie ako 3.

Skontrolujte hodnotu v rozsahu. Napríklad,

 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 spustení programu bude výstup:

 Kladné číslo medzi 10 a 100 (vrátane)

Skontrolujte, či je hodnota konkrétneho typu.

Na kontrolu toho, či je hodnota konkrétneho typu za behu, môžeme použiť operátor is a! Is. Napríklad,

 keď (x) (je Int -> print (x + 1) je String -> print (x.length + 1) je IntArray -> print (x.sum ())) 

Ako podmienku vetvy použite výrazy. Napríklad,

 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 spustení programu bude výstup:

Bingo! Je jedenásť.

Zaujímavé články...