English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste artigo, você aprenderá sobre a expressão when no Kotlin através de vários exemplos.
Kotlin中的when表达式可以认为是Java switch 语句A expressão when no Kotlin pode ser vista como
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
=
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
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.