English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Expression when en Kotlin

Dans cet article, vous découvrirez l'expression when en Kotlin à travers divers exemples.

Qu'est-ce que l'expression when en Kotlin

Kotlin中的when表达式可以认为是Les expressions when en Kotlin peuvent être considérées commeJava switch statement

remplace. Il évalue un segment de code parmi de nombreux remplacements possibles.

fun main(args: Array<String>) {
    val a = 12
    dans l'exemple ci-dessus, nous utilisons when en tant qu'expression. Mais, when n'est pas obligatoire en tant qu'expression. Par exemple, 5
    val b = +> println("n est égal à 0 -> println("n est égal à 0 * opérateur d'entrée /println("Entrer un opérateur
    )
    Exemple : expression when simple
        "+" -val result = lorsque (operator) { + > a
        "-" -val result = lorsque (operator) { - > a
        "*" -val result = lorsque (operator) { * > a
        "/" -val result = lorsque (operator) { / > a
        b}) -b
    }
    > "$operator est un opérateur invalide.""
}

> println("$operator est invalid")

lorsque vous exécutez le programme, la sortie sera comme suit : +> println("n est égal à 0 -> println("n est égal à 0 * opérateur d'entrée /
*
println("result = $result") 60

result =le programme ci-dessus récupère l'entrée de chaîne de caractères de l'utilisateur (lire également :obtenir une entrée de chaîne de caractères de l'utilisateur en Kotlin*)。Supposons que l'utilisateur entre * 。Dans ce cas, l'expression a

b évaluée, et la valeur assignée à la variable result.+si aucune condition de branche ne correspond (l'entrée utilisateur en dehors de-si aucune condition de branche ne correspond (l'entrée utilisateur en dehors de*,/ou

autre option,),la branche else sera évaluée.

fun main(args: Array<String>) {
    val a = 12
    dans l'exemple ci-dessus, nous utilisons when en tant qu'expression. Mais, when n'est pas obligatoire en tant qu'expression. Par exemple, 5
    val b = +> println("n est égal à 0 -> println("n est égal à 0 * opérateur d'entrée /println("Entrer un opérateur
    )
    val operator = readLine()
        "+" -lorsque (operator) { + > println("$a + $b = ${a
        "-" -lorsque (operator) { - > println("$a - $b = ${a
        "*" -lorsque (operator) { * > println("$a * $b = ${a
        "/" -lorsque (operator) { / > println("$a / $b = ${a
        b}) -sinon
    }
}

> println("$operator est invalid")

lorsque vous exécutez le programme, la sortie sera comme suit : +> println("n est égal à 0 -> println("n est égal à 0 * opérateur d'entrée /
-
12 - 5 ou 7

=

ici, when n'est pas une expression (le retour de when n'est pas assigné à aucun objet). Dans ce cas, la branche else n'est pas nécessaire.

1quelques scénarios possiblesPar exemple,

fun main(args: Array<String>) {
    combiner deux ou plusieurs conditions de branche avec une virgule. -1
    when (n) {
        1> println("n est égal à 0 2> println("n est égal à 0 3 -val n = 4> println("n est un entier négatif supérieur à
        0 -> println("n est un entier positif inférieur à
        -1> println("n est égal à 0 -2 -, -3> println("n est un entier négatif supérieur à
    }
}

Lorsque ce programme est exécuté, la sortie est :

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

2.Par exemple,

fun main(args: Array<String>) {
    val a = 100
    vérifier les valeurs dans la plage.
        les nombres positifs. 1dans10 -lorsque (a) {11> println("A est inférieur à
        les nombres positifs. 10dans100 -..10et100(inclus)10et10> println("Entre
    }
}

Lorsque ce programme est exécuté, la sortie est :

les nombres positifs entre 0) et)10et100(inclus)10et10les nombres positifs entre 0) et

3vérifier si une valeur est de type spécifique.

Pour vérifier si une valeur est de type spécifique au moment de l'exécution, vous pouvez utiliser les opérateurs is et !is. Par exemple,

lorsque (x) {
    est Int -> print(x + 1)
    est String -> print(x.length + 1)
    est IntArray -> print(x.sum())
}

4Utiliser une expression comme condition de branche.Par exemple,

fun main(args: Array<String>) {
    val a = 11
    val n = "11"
    when (n) {
        "chat" -> println("Chat? Vraiment?")
        12.toString() -> println("Presque, mais pas assez proche.")
        a.toString() -> println("Bingo! C'est onze.")
    }
}

Lorsque ce programme est exécuté, la sortie est :

Bingo! C'est onze.