Ternaarne operaator
Ternaarne operaator, mida tuntakse ka tingimusoperaatorina, on lühendatud viis if-else avalduse kirjutamiseks ühes reas kood. See võtab kolm operandi: tingimus, väärtus, mis tagastatakse, kui tingimus on tõene, ja väärtus, mis tagastatakse, kui tingimus on vale. Ternaarse operaatori süntaks on järgmine:
tingimus ? value_if_true : value_if_false
Kõigepealt hinnatakse tingimust. Kui see on tõene, tagastatakse väljend value_if_true. Kui see on vale, tagastatakse väljend value_if_false. Kolmikoperaatorit kasutatakse sageli kui ülevaatlikumat alternatiivi if-else avaldisele olukordades, kus tingimus on lihtne ja saadud kood on kergesti loetav.
Näiteks vaadelge järgmist if-else avaldust:
if (x > 0) { y = x; } else { y = -x; }
Seda saab ümber kirjutada, kasutades kolmikoperaatorit järgmiselt:
y = (x > 0) ? x : -x;
Kolmikoperaatorit saab ka keerulisemate tingimuste käsitlemiseks sisseehitada. Näiteks:
tulemus = (x > 0) ? "Positiivne" : (x < 0) ? "Negatiivne" : "Null";
See kood kontrollib, kas x on suurem kui 0. Kui on, siis tagastatakse väärtus "Positiivne". Kui mitte, siis kontrollitakse, kas x on väiksem kui 0. Kui on, siis tagastatakse väärtus "Negatiivne". Kui x ei ole suurem ega väiksem kui 0, tagastatakse väärtus "Zero".
Kuigi ternaarne operaator võib mõnel juhul muuta koodi ülevaatlikumaks ja kergemini loetavaks, võib see liigse või ebasobiva kasutamise korral muuta koodi ka raskemini mõistetavaks. Oluline on kasutada kolmikoperaatorit mõistlikult ja seada koodi selgus ja hooldatavus lühiduse asemel esikohale.