Kotlin când expresie (cu exemple)

În acest articol, veți afla despre construirea în Kotlin cu ajutorul diferitelor exemple.

Kotlin când Construct

whenRezultant în Kotlin poate fi considerat ca un înlocuitor pentru declarație comutator Java. Evaluează o secțiune de cod printre multe alternative.

Exemplu: Simplu când Expresie

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

Când rulați programul, ieșirea va fi ceva de genul:

 Introduceți operatorul +, -, * sau / * rezultat = 60

Programul de mai sus preia un șir de intrare de la utilizator (Lectură recomandată: Obțineți intrare de șir de la utilizator în Kotlin). Să presupunem că utilizatorul a intrat *. În acest caz, expresia a * beste evaluată, iar valoarea este atribuită rezultatului variabil.

În cazul în care nici una dintre condițiile de ramură sunt îndeplinite (utilizator introdus nimic în afară +, -, *, sau /), elsefiliala este evaluată.

În exemplul de mai sus, am folosit- wheno ca expresie. Cu toate acestea, nu este obligatoriu să se utilizeze whenca expresie. De exemplu,

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

Când rulați programul, ieșirea va fi ceva de genul:

 Introduceți operatorul +, -, * sau / - 12 - 5 = 7 

Aici, whennu este o expresie (valoarea returnată de la whennu este atribuită nimic). În acest caz, elsesucursala nu este obligatorie.

Puține posibilități

Combinați două sau mai multe condiții de ramură cu o virgulă. De exemplu,

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

Când rulați programul, ieșirea va fi:

 n este un întreg negativ mai mare de 3.

Verificați valoarea în interval. De exemplu,

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

Când rulați programul, ieșirea va fi:

 Un număr pozitiv între 10 și 100 (inclusiv)

Verificați dacă o valoare este de un anumit tip.

Pentru a verifica dacă o valoare este de un anumit tip în runtime, putem folosi operatorul is and! Is. De exemplu,

 când (x) (este Int -> print (x + 1) este Șir -> print (x.length + 1) este IntArray -> print (x.sum ())) 

Folosiți expresii ca condiție de ramură. De exemplu,

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

Când rulați programul, ieșirea va fi:

Bingo! Sunt unsprezece.

Articole interesante...