Em Kotlin, if
é uma expressão, e retorna um valor. Por isso, não há necessidade de um operador ternário, pois if
pode ser usado diretamente:
var value = 1
val otherValue = 5
if (2 < otherValue) value = otherValue
Com else
:
val firstValue = 1
val secondValue = 2
if (firstValue >= secondValue) {
println("$firstValue")
} else {
println("$secondValue")
}
Você pode testar esse código online.
Uma expressão if
pode ser usada em blocos. Nesse caso, a última expressão é o valor do bloco:
val firstValue = 1
val secondValue = 2
val maxValue = if (firstValue > secondValue) firstValue else secondValue
Você pode testar esse código online.
Nota
Quando usar
if
como expressão para retornar ou atribuir valores, o uso deelse
é obrigatório para garantir que o fluxo sempre tenha um resultado.
Em Kotlin, when
é uma expressão condicional com várias ramificações, semelhante à instrução switch
em outras
linguagens como PHP. O when
avalia seu argumento e compara com as condições de cada ramificação até que uma seja
satisfeita:
val value = 3
val result = when (value) {
1 -> "Primeira condição."
2 -> "Segunda condição."
else -> "Condição padrão (else)."
}
Você pode testar esse código online.
O when
também suporta ranges nas condições:
val randomValue = (1..1001).random()
val result = when (randomValue) {
in 1..100 -> "O valor <$randomValue> está entre 1 e 100."
in 101..1000 -> "O valor <$randomValue> está entre 101 e 1000."
else -> "O valor <$randomValue> é maior que 1000."
}
Você pode testar esse código online.
O when
pode ser usado tanto como uma expressão quanto como uma instrução. Se usado como expressão, o valor da primeira
condição correspondida será o valor da expressão. Se usado como instrução, os valores das ramificações individuais serão
ignorados. Assim como no if
, cada ramificação pode ser um bloco, e o valor da última expressão no bloco será o valor
retornado.
Ir para exceções.