În acest articol, veți afla despre construirea în Kotlin cu ajutorul diferitelor exemple.
Kotlin când Construct
when
Rezultant î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 * b
este 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 /
), else
filiala este evaluată.
În exemplul de mai sus, am folosit- when
o ca expresie. Cu toate acestea, nu este obligatoriu să se utilizeze when
ca 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, when
nu este o expresie (valoarea returnată de la when
nu este atribuită nimic). În acest caz, else
sucursala 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.