Kotlin kun lauseke (esimerkkien kanssa)

Tässä artikkelissa opit rakentamaan Kotlinissa useiden esimerkkien avulla.

Kotlin kun rakentaa

whenKonstruktion Kotlin voidaan ajatella korvaamaan Java kytkin selvitys. Se arvioi koodin osan monien vaihtoehtojen joukossa.

Esimerkki: Yksinkertainen lausekkeessa

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

Kun suoritat ohjelmaa, tulos on jotain:

 Syötä operaattori joko +, -, * tai / * tulos = 60

Yllä oleva ohjelma ottaa käyttäjältä syötemerkkijonon (Suositeltava lukeminen: Hanki merkkijonotulo käyttäjältä Kotlinissa). Oletetaan, että käyttäjä kirjoitti *. Tässä tapauksessa lauseke a * barvioidaan ja arvo määritetään muuttuvalle tulokselle.

Jos mikään sivuliikkeen ehdot täyttyvät (käyttäjä kirjoittaa mitään muuta +, -, *, tai /), elsehaara arvioidaan.

Yllä olevassa esimerkissä käytimme whenlauseketta. Sitä ei kuitenkaan tarvitse käyttää whenlausekkeena. Esimerkiksi,

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

Kun suoritat ohjelmaa, tulos on jotain:

 Syötä operaattori joko +, -, * tai / - 12 - 5 = 7 

Tässä whenei ole lauseke (palautusarvoa kohteesta whenei ole määritetty mihinkään). Tässä tapauksessa elsesivuliike ei ole pakollinen.

Harvat mahdollisuudet

Yhdistä kaksi tai useampi haaraehto pilkulla. Esimerkiksi,

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

Kun suoritat ohjelmaa, tulos on:

 n on negatiivinen kokonaisluku, joka on suurempi kuin 3.

Tarkista arvo alueella. Esimerkiksi,

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

Kun suoritat ohjelmaa, tulos on:

 Positiivinen luku välillä 10 ja 100 (mukaan lukien)

Tarkista, onko arvo tietyntyyppinen.

Voit tarkistaa, onko arvo tietyn tyyppinen ajon aikana, käyttämällä operaattoria on ja! On. Esimerkiksi,

 kun (x) (on Int -> print (x + 1) on merkkijono -> print (x.length + 1) on IntArray -> print (x.sum ())) 

Käytä lausekkeita haaran ehdoin. Esimerkiksi,

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

Kun suoritat ohjelmaa, tulos on:

Bingo! Se on yksitoista.

Mielenkiintoisia artikkeleita...