V tomto článku se naučíte používat podmíněný nebo ternární operátor ke změně toku řízení programu.
Ternární podmíněný operátor "? :"
je zkratka pro příkaz if-else.
Syntaxe pro ternární podmíněný operátor je:
stav? hodnota1: hodnota2
Jak funguje ternární podmíněný operátor?
Funguje to takto
- Pokud je podmínka pravdivá, vrátí hodnotu1.
- Pokud je podmínka false, vrátí hodnotu2.
Výše uvedený ekvivalentní kód pomocí if - else je:
pokud podmínka (hodnota1) else (hodnota2)
Proč používat ternární podmíněný operátor?
Možná se divíte, proč bychom měli používat podmíněný operátor, pokud provádí stejnou práci jako příkaz if-else. Hlavním účelem jeho použití je, aby byl kód kratší a čitelnější.
Pro jednoduché podmínky to můžete vyhodnotit na jednom řádku s menším množstvím kódu, než kdyby-else.
Příklad 1: Jednoduchý příklad pomocí ternárního podmíněného operátoru
print(true && false ? "The condition is true": "The condition is false")
Výše uvedený ekvivalentní kód pomocí if - else je:
if true && false ( print("The condition is true") ) else ( print("The condition is false") )
Když spustíte výše uvedený program, výstup bude:
Podmínka je nepravdivá
Ve výše uvedeném programu se výraz true && false
vyhodnotí na false
, proto příkaz vrací řetězec . Podmínka je nepravdivá a příkaz print vydá řetězec v konzole.
Pokud změníte výraz, když true || false
se příkaz vyhodnotí true
a vrátí řetězec Podmínka je pravdivá a příkaz print vypíše řetězec v konzole.
Věci k zapamatování
Ternární podmíněný operátor lze také použít jako alternativu if-else-if
příkazu.
Pomocí ternárního podmíněného operátoru můžete nahradit více řádků if-else-if
kódu jediným řádkem.
To však nemusí být dobrý nápad.
Příklad 2: Vnořeno, pokud jinak, pomocí ternárního podmíněného operátoru
if true && false ( print("Result is (true && false)") ) else if true || false ( print("Result is (true || false)") ) else if false || false ( print("Result is (false || false)") ) else ( print("Default else statement") )
Výše uvedený ekvivalentní kód využívající ternární podmíněný operátor je:
print(true && false ? "Result is (true && false)" : true || false ? "Result is (true || false)" : false || false ? "Result is (false || false)" : "The condition is unknown")
Když spustíte výše uvedené programy, oba výstupy budou:
Výsledek je pravdivý
Ve výše uvedených programech, i když jsou příkazy if-else-if
nahrazeny jediným řádkem pomocí podmíněného operátoru. Výraz použitý v ternárním podmíněném operátoru je opravdu těžké pochopit.
Jen se tedy držte použití ternárního podmíněného operátoru jako alternativy if-else
pouze příkazu.