Skip to content

Latest commit

 

History

History
86 lines (60 loc) · 2.29 KB

EXPRESSIONS.md

File metadata and controls

86 lines (60 loc) · 2.29 KB

Expressões condicionais

If

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 de else é obrigatório para garantir que o fluxo sempre tenha um resultado.

When

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.