Kotlin quand Expression (avec des exemples)

Dans cet article, vous apprendrez quand construire dans Kotlin à l'aide de divers exemples.

Kotlin lors de la construction

La whenconstruction de Kotlin peut être considérée comme un remplacement de l'instruction de commutation Java. Il évalue une section de code parmi de nombreuses alternatives.

Exemple: Simple quand 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") ) 

Lorsque vous exécutez le programme, la sortie sera quelque chose comme:

 Entrez l'opérateur +, -, * ou / * résultat = 60

Le programme ci-dessus prend une chaîne d'entrée de l'utilisateur (lecture recommandée: obtenir une entrée de chaîne de l'utilisateur dans Kotlin). Supposons que l'utilisateur soit entré *. Dans ce cas, l'expression a * best évaluée et la valeur est affectée à la variable result.

Si aucune des conditions de branchement sont satisfaites (sauf l' utilisateur est entré quoi que ce soit +, -, *, ou /), la elsebranche est évaluée.

Dans l'exemple ci-dessus, nous avons utilisé whencomme expression. Cependant, il n'est pas obligatoire de l'utiliser whencomme expression. Par exemple,

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

Lorsque vous exécutez le programme, la sortie sera quelque chose comme:

 Entrez l'opérateur +, -, * ou / - 12 - 5 = 7 

Ici, ce whenn'est pas une expression (la valeur de retour de whenn'est affectée à rien). Dans ce cas, la elsesuccursale n'est pas obligatoire.

Peu de possibilités

Combinez deux ou plusieurs conditions de branche avec une virgule. Par exemple,

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

Lorsque vous exécutez le programme, la sortie sera:

 n est un entier négatif supérieur à 3.

Vérifiez la valeur dans la plage. Par exemple,

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

Lorsque vous exécutez le programme, la sortie sera:

 Un nombre positif compris entre 10 et 100 (inclus)

Vérifiez si une valeur est d'un type particulier.

Pour vérifier si une valeur est d'un type particulier au runtime, nous pouvons utiliser l'opérateur is et! Is. Par exemple,

 quand (x) (est Int -> print (x + 1) est String -> print (x.length + 1) est IntArray -> print (x.sum ())) 

Utilisez des expressions comme condition de branche. Par exemple,

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

Lorsque vous exécutez le programme, la sortie sera:

Bingo! Il est onze heures.

Articles intéressants...