Tässä artikkelissa opit rakentamaan Kotlinissa useiden esimerkkien avulla.
Kotlin kun rakentaa
when
Konstruktion 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 * b
arvioidaan ja arvo määritetään muuttuvalle tulokselle.
Jos mikään sivuliikkeen ehdot täyttyvät (käyttäjä kirjoittaa mitään muuta +
, -
, *, tai /
), else
haara arvioidaan.
Yllä olevassa esimerkissä käytimme when
lauseketta. Sitä ei kuitenkaan tarvitse käyttää when
lausekkeena. 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ä when
ei ole lauseke (palautusarvoa kohteesta when
ei ole määritetty mihinkään). Tässä tapauksessa else
sivuliike 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.