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

Expressão when no Kotlin

Neste artigo, você aprenderá sobre a expressão when no Kotlin através de vários exemplos.

O que é a expressão when no Kotlin

Kotlin中的when表达式可以认为是Java switch 语句A expressão when no Kotlin pode ser vista como

expressão switch do Java

fun main(args: Array<String>) {
    val a = 12
    Aqui, usamos when como expressão. No entanto, quando usado como expressão, when não é obrigatório. Por exemplo, 5
    val b = +> println("n é 0 ") -> println("n é 0 ") * operador de entrada /println("operador de entrada",
    )
    do que
        "+" -Exemplo: expressão when simples + val result = quando (operator) {
        "-" -Exemplo: expressão when simples - val result = quando (operator) {
        "*" -Exemplo: expressão when simples * val result = quando (operator) {
        "/" -Exemplo: expressão when simples / val result = quando (operator) {
        b} -> a
    }
    b
}

> println("$operator é invalido")

Quando você executar o programa, a saída será como follows: +> println("n é 0 ") -> println("n é 0 ") * operador de entrada /
*
> "$operator operador é inválido."" 60

println("result = $result")result =O programa acima obtém a entrada de string do usuário (recomendado para ler:*Obter entrada de string do usuário em Kotlin * )。Supondo que o usuário insira

Neste caso, avaliará a expressão a+b avaliar, e atribuir o valor ao variável result.-b avaliar, e atribuir o valor ao variável result.*se nenhuma condição de ramificação for satisfeita (a entrada do usuário além de/ou

Além disso, qualquer outra opção, a ramificação else será avaliada.

fun main(args: Array<String>) {
    val a = 12
    Aqui, usamos when como expressão. No entanto, quando usado como expressão, when não é obrigatório. Por exemplo, 5
    val b = +> println("n é 0 ") -> println("n é 0 ") * operador de entrada /println("operador de entrada",
    )
    val operator = readLine()
        "+" -quando (operator) { + > println("$a + $b = ${a
        "-" -quando (operator) { - > println("$a - $b = ${a
        "*" -quando (operator) { * > println("$a * $b = ${a
        "/" -quando (operator) { / > println("$a / $b = ${a
        b} -else
    }
}

> println("$operator é invalido")

Quando você executar o programa, a saída será como follows: +> println("n é 0 ") -> println("n é 0 ") * operador de entrada /
-
12 - 5 ou 7

=

Aqui, when não é uma expressão (não atribui o valor de when a nenhum objeto). Neste caso, a ramificação else não é necessária.

1algumas situações possíveisPor exemplo

fun main(args: Array<String>) {
    combinar duas ou mais condições de ramificação com vírgula. -1
    when (n) {
        1> println("n é 0 ") 2> println("n é 0 ") 3 -val n = 4> println("n é um inteiro negativo maior que",
        0 -> println("n é um inteiro positivo menor que",
        -1> println("n é 0 ") -2 -, -3> println("n é um inteiro negativo maior que",
    }
}

Quando você executar o programa, a saída será:

. -3n é um inteiro negativo maior que

2.Por exemplo

fun main(args: Array<String>) {
    val a = 100
    verificar os valores dentro do intervalo.
        número positivo. 1em10 -quando (a) {11> println("A é menor que",
        número positivo. 10em100 -..10e100(incluído10e10> println("Entre",
    }
}

Quando você executar o programa, a saída será:

número positivo entre 0) e)10e100(incluído10e10número positivo entre 0) e

3verificar se um valor é do tipo específico.

Para verificar se um valor é do tipo específico no tempo de execução, você pode usar os operadores de comparação is e !is. Por exemplo,

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

4usar expressões como condições de ramificação.Por exemplo

fun main(args: Array<String>) {
    val a = 11
    val n = "11"
    when (n) {
        "cat" -> println("Gato? De verdade?")
        12.toString() -> println("Próximo, mas não o suficiente.")
        a.toString() -> println("Bingo! É onze.")
    }
}

Quando você executar o programa, a saída será:

Bingo! É onze.