Kotlin kad izraz (s primjerima)

U ovom ćete članku naučiti o tome kada se gradi u Kotlinu uz pomoć različitih primjera.

Kotlin kada konstruira

whenKonstrukt u Kotlin se može shvatiti kao zamjena za Java Naredba switch. Procjenjuje dio koda među mnogim alternativama.

Primjer: Jednostavno kada je izraz

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

Kada pokrenete program, izlaz će biti otprilike:

 Unesite operator ili +, -, * ili / * rezultat = 60

Gornji program uzima ulazni niz od korisnika (Preporučeno čitanje: Dobijte unos niza od korisnika u Kotlinu). Pretpostavimo da je korisnik ušao *. U ovom slučaju, izraz a * bse procjenjuje, a vrijednost se dodjeljuje varijabli rezultat.

Ako niti jedan od uvjeta podružnica su zadovoljni (korisnik unio ništa osim +, -, *, ili /), elsegrana se ocjenjuje.

U gornjem primjeru koristili smo whenkao izraz. Međutim, nije obvezno koristiti whenkao izraz. Na primjer,

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

Kada pokrenete program, izlaz će biti otprilike:

 Unesite operator ili +, -, * ili / - 12 - 5 = 7 

Ovdje whennije izraz (povratna vrijednost od whennije dodijeljena ničemu). U ovom slučaju elsepodružnica nije obavezna.

Malo mogućnosti

Kombinirajte dva ili više uvjeta grana sa zarezom. Na primjer,

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

Kada pokrenete program, izlaz će biti:

 n je negativan cijeli broj veći od 3.

Provjerite vrijednost u rasponu. Na primjer,

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

Kada pokrenete program, izlaz će biti:

 Pozitivan broj između 10 i 100 (uključujući)

Provjerite je li vrijednost određene vrste.

Da bismo provjerili je li vrijednost određenog tipa u vrijeme izvođenja, možemo koristiti operator is i! Is. Na primjer,

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

Koristite izraze kao uvjet grane. Na primjer,

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

Kada pokrenete program, izlaz će biti:

Bingo! Jedanaest je.

Zanimljivi članci...