Ak v if-e alebo when-e vymenujeme všetky možnosti (obvykle sa o to postará slovíčko else), potom sa if aj when stávajú výrazom. Podmienke, ktorá vymenuje všetky možnosti hovoríme úplné podmienky alebo anglicky exhaustive.
Výraz (angl. expression) je taký kus kódu, ktorý vracia nejakú hodnotu (napr.
x > y) Statement je naopak taký kus kódu, ktorý hodnotu nevracia (napr.x = 5)
Úplné podmienky vrátia tú hodnotu, ktorá sa nachádza ako posledný výraz vo vykonávanej vetve. Pozri si nasledovné príkazy:
fun main() {
val age = 17
val status1 = if (age > 18) "Can drink" else "Can't drink"
val status2 = when {
age < 15 -> "Can't drink"
age < 18 -> "Shouldn't drink"
else -> "Can drink"
}
println(status1) // "Can't drink"
println(status2) // "Shouldn't drink"
}
To isté platí aj v bloku príkazov, napríklad:
fun main() {
val age = 17
val status = if (age < 15) {
println("Processing child")
"Can't drink"
} else if (age < 18) {
val x = 18 - age
println("Still missing $x years to be able to drink")
"Shouldn't drink"
} else {
"OK"
}
println(status) // "Shouldn't drink"
}
Pozor: Jazyk Kotlin pozná ternárny operátor (kondicionál)
Vytvor funkciu, ktorá pomocou if výrazu vráti absolútnu hodnotu zadaného čísla.
Pomocou when výrazu priraď číslu mesiaca názov ročného obdobia a výsledok vypíš.
Vytvor úplný if výraz s blokmi, ktorý podľa počtu bodov vráti známku a vo vetve pre neúspech vypíše upozornenie.