In dit artikel leert u met behulp van verschillende voorbeelden hoe u in Kotlin kunt bouwen.
Kotlin toen Construct
Het when
construct in Kotlin kan worden gezien als een vervanging voor Java Switch Statement. Het evalueert een deel van de code uit vele alternatieven.
Voorbeeld: Simple when Expression
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") )
Wanneer u het programma uitvoert, ziet de uitvoer er ongeveer zo uit:
Voer operator +, -, * of / * resultaat = 60 in
Het bovenstaande programma heeft een invoertekenreeks van de gebruiker nodig (aanbevolen literatuur: tekenreeksinvoer van de gebruiker in Kotlin ophalen). Stel dat de gebruiker binnenkwam *
. In dit geval wordt de uitdrukking a * b
geëvalueerd en wordt de waarde toegewezen aan variabel resultaat.
Als geen van de branche voorwaarden is voldaan (de gebruiker ingevoerde alles behalve +
, -
, * of /
), else
filiaal wordt geëvalueerd.
In het bovenstaande voorbeeld hebben we when
als uitdrukking gebruikt. Het is echter niet verplicht om when
als uitdrukking te gebruiken. Bijvoorbeeld,
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") ) )
Wanneer u het programma uitvoert, ziet de uitvoer er ongeveer zo uit:
Voer operator +, -, * of / - 12 - 5 = 7 in
Hier when
is geen uitdrukking (retourwaarde van when
is nergens aan toegewezen). In dit geval is het else
bijkantoor niet verplicht.
Weinig mogelijkheden
Combineer twee of meer vertakkingsvoorwaarden met een komma. Bijvoorbeeld,
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.") ) )
Wanneer u het programma uitvoert, is de uitvoer:
n is een negatief geheel getal groter dan 3.
Controleer de waarde in het bereik. Bijvoorbeeld,
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)") ) )
Wanneer u het programma uitvoert, is de uitvoer:
Een positief getal tussen 10 en 100 (inclusief)
Controleer of een waarde van een bepaald type is.
Om te controleren of een waarde van een bepaald type is in runtime, kunnen we de is en! Is operator gebruiken. Bijvoorbeeld,
wanneer (x) (is Int -> print (x + 1) is String -> print (x.length + 1) is IntArray -> print (x.sum ()))
Gebruik uitdrukkingen als vertakkingsvoorwaarde. Bijvoorbeeld,
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.") ) )
Wanneer u het programma uitvoert, is de uitvoer:
Bingo! Het is elf uur.