Dans cet article, vous apprendrez quand construire dans Kotlin à l'aide de divers exemples.
Kotlin lors de la construction
La when
construction 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 * b
est é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 else
branche est évaluée.
Dans l'exemple ci-dessus, nous avons utilisé when
comme expression. Cependant, il n'est pas obligatoire de l'utiliser when
comme 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 when
n'est pas une expression (la valeur de retour de when
n'est affectée à rien). Dans ce cas, la else
succursale 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.