A ternáris operátorokra úgy gondolhatsz, mint az if-else tömör változatára. Általában (de nem kizárólag) return utasításokban használjuk: egyetlen sorban dönt, és a bal oldali értéket adja vissza, ha a kifejezés true, illetve a jobb oldalit, ha false.
Sok egyszerű if/else kifejezés egyszerűsíthető ternáris operátorokkal.
// this ternary statement
return 5 > 4 ? true : false;
// is equivalent to this if/else
if ( 5 > 4 ) {
return true;
} else {
return false;
}
Akkor hogyan döntsünk az if-else és a ternáris között? Nos, a ternáris operátorokat egyszerű esetekben használjuk, amikor csak egy értéket kell visszaadnod egy feltétel alapján, és nincs szükség további számításra. Minden másra if-else-t használj: egymásba ágyazott feltételek, nagy kifejezések, és amikor több sor kell a visszaadandó érték meghatározásához.
Bár a ternáris operátorokat egymásba ágyazhatod, a kód gyakran olvashatatlanná válik. Ezekben az esetekben az egymásba ágyazott if-eket érdemes előnyben részesíteni.
// hard to read
int value = expr1 ? expr2 && expr3 ? val1 : (val2 + val3) : expr4;
// easier to read
if (expr1){
if (expr2 && expr3){
return val1;
}
return val2 + val3;
}
return val4;
A ternáris operátorok és az if/else utasítások jó példái annak, hogy programozás közben többféleképpen is elérheted ugyanazt az eredményt.