Podmíněný operátor je také známý jako a ternární operátor . Podmíněné příkazy jsou příkazy pro rozhodování, které závisí na výstupu výrazu. Je reprezentován dvěma symboly, tj. '?' a ':'.
Protože podmíněný operátor pracuje na třech operandech, je také známý jako ternární operátor.
Chování podmíněného operátoru je podobné jako ' pokud-jinak ' prohlášení jako 'if-else' prohlášení je také rozhodovací prohlášení.
Syntaxe podmíněného operátoru
Expression1? expression2: expression3;
Obrazové znázornění výše uvedené syntaxe je uvedeno níže:
Význam výše uvedené syntaxe.
- Ve výše uvedené syntaxi je výraz1 logická podmínka, která může mít hodnotu true nebo false.
- Pokud výraz1 vyústí ve skutečnou hodnotu, provede se výraz2.
- Výraz2 je považován za pravdivý pouze tehdy, když vrací nenulovou hodnotu.
- Pokud výraz1 vrátí hodnotu false, provede se výraz3.
- Výraz3 je považován za nepravdivý pouze tehdy, když vrací nulovou hodnotu.
Pojďme pochopit ternární nebo podmíněný operátor prostřednictvím příkladu.
#include int main() { int age; // variable declaration printf('Enter your age'); scanf('%d',&age); // taking user input for age variable (age>=18)? (printf('eligible for voting')) : (printf('not eligible for voting')); // conditional operator return 0; }
Ve výše uvedeném kódu bereme vstup jako „věk“ uživatele. Po převzetí vstupu jsme aplikovali podmínku pomocí podmíněného operátoru. V tomto stavu kontrolujeme věk uživatele. Pokud je věk uživatele vyšší nebo roven 18, provede se příkaz1, tj. (printf('způsobilé k hlasování')), jinak se provede příkaz2, tj. (printf('nevhodné k hlasování') ).
Podívejme se na výstup výše uvedeného programu.
Pokud uvedeme věk uživatele mladšího 18 let, výstup bude:
Pokud uvedeme věk uživatele staršího 18 let, výstup bude:
Jak můžeme z výše uvedených dvou výstupů vypozorovat, že pokud je podmínka pravdivá, provede se příkaz1; jinak se provede příkaz2.
Dosud jsme pozorovali, jak podmíněný operátor kontroluje podmínku a na základě podmínky provádí příkazy. Nyní uvidíme, jak se podmíněný operátor používá k přiřazení hodnoty proměnné.
Fibonacciho kód java
Pojďme pochopit tento scénář na příkladu.
#include int main() { int a=5,b; // variable declaration b=((a==5)?(3):(2)); // conditional operator printf('The value of 'b' variable is : %d',b); return 0; }
Ve výše uvedeném kódu jsme deklarovali dvě proměnné, tj. 'a' a 'b', a přiřadili jsme 5 hodnot proměnné 'a'. Po deklaraci přiřadíme hodnotu proměnné 'b' pomocí podmíněného operátoru. Pokud je hodnota „a“ rovna 5, pak „b“ je přiřazena hodnota 3, jinak 2.
Výstup
Výše uvedený výstup ukazuje, že hodnota proměnné „b“ je 3, protože hodnota proměnné „a“ je rovna 5.
Jak víme, chování podmíněného operátoru a 'if-else' je podobné, ale mají určité rozdíly. Podívejme se na jejich rozdíly.
- Podmíněný operátor je jediný programovací příkaz, zatímco příkaz 'if-else' je programovací blok, ve kterém jsou příkazy v závorkách.
- Pro přiřazení hodnoty proměnné lze také použít podmíněný operátor, zatímco příkaz 'if-else' nelze pro účely přiřazení použít.
- Není užitečné pro provádění příkazů, když je více příkazů, zatímco příkaz 'if-else' se ukazuje jako vhodnější při provádění více příkazů.
- Vnořený ternární operátor je složitější a nelze jej snadno odladit, zatímco vnořený příkaz 'if-else' se snadno čte a udržuje.