Sfairadora

Podmíněný výraz

if(podmínka) blok1
if(podmínka) blok1 else blok2
podmínka ? blok1
podmínka ? blok1 : blok2
Podmínka musí být výraz typu Bool. Pokud je podmínka splněná (výsledek TRUE), vyhodnotí se blok1 a jeho výsledek je celkovým výsledkem. Pokud splněný není (výsledek FALSE), vyhodnotí se blok2, je-li zadán. Pokud zadán není, je výsledek NONE.
Varianta s ?: je zahrnuta kvůli větší podobnosti s jazyky jako C a Java, v Enki jsou obě formy ekvivalentní – obě vracejí hodnotu. Rozdíl je pouze v prioritách operátorů.
Vzhledem k tomu, že v Enki funguje středník jako oddělovač, nesmí být větev blok1 ukončena středníkem.
Výrazy blok1 a blok2 jsou blokem v tom smyslu, že v nich definované proměnné mají lokální platnost.
Příklad 1:
if(x>0)
(
a = 1;
)
else
(
a = 2;
)
Příklad 2:
var Int a = if(x>0) 1 else 2

Viz též