Условни оператор је такође познат као а тернарни оператор . Условне изјаве су изјаве за доношење одлука које зависе од излаза израза. Представљају га два симбола, тј. '?' и ':'.
Како условни оператор ради на три операнда, тако је познат и као тернарни оператор.
Понашање условног оператора је слично ' ако друго ' изјава као 'ако-иначе' изјава је такође изјава за доношење одлуке.
Синтакса условног оператора
Expression1? expression2: expression3;
Сликовни приказ горње синтаксе је приказан у наставку:
Значење горње синтаксе.
- У горњој синтакси, израз1 је Булов услов који може бити тачна или нетачна вредност.
- Ако израз1 резултира у истинитој вредности, онда ће се израз2 извршити.
- За израз2 се каже да је истинит само када враћа вредност различиту од нуле.
- Ако израз1 врати лажну вредност, онда ће се израз3 извршити.
- За израз3 се каже да је нетачан само када враћа нулту вредност.
Хајде да разумемо тернарни или условни оператор кроз пример.
#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; }
У горњем коду, унос узимамо као 'старост' корисника. Након уноса, применили смо услов коришћењем условног оператора. У овом стању проверавамо старост корисника. Ако је старост корисника већа од или једнака 18, онда ће се наредба1 извршити, тј. (принтф('подесно за гласање)), у супротном, наредба2 ће се извршити, тј. (принтф('није квалификован за гласање') ).
Хајде да посматрамо излаз горњег програма.
Ако дамо старост корисника испод 18 година, онда би резултат био:
Ако наведемо старост корисника изнад 18 година, онда би резултат био:
Као што можемо приметити из горња два излаза, ако је услов тачан, онда се наредба1 извршава; у супротном, наредба2 ће бити извршена.
До сада смо приметили да како условни оператор проверава услов и на основу услова, он извршава наредбе. Сада ћемо видети како се условни оператор користи за додељивање вредности променљивој.
јава формат стринга дугачак
Хајде да разумемо овај сценарио кроз пример.
#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; }
У горњем коду смо декларисали две променљиве, тј. 'а' и 'б', и доделили вредност 5 променљивој 'а'. Након декларације, променљивој 'б' додељујемо вредност помоћу условног оператора. Ако је вредност 'а' једнака 5, онда је 'б' додељена вредност 3, иначе 2.
Излаз
Горњи излаз показује да је вредност променљиве 'б' 3 јер је вредност променљиве 'а' једнака 5.
Као што знамо да је понашање условног оператора и 'иф-елсе' слично, али имају неке разлике. Погледајмо њихове разлике.
- Условни оператор је један програмски израз, док је израз 'иф-елсе' програмски блок у којем се искази налазе испод заграда.
- Условни оператор се такође може користити за додељивање вредности променљивој, док се наредба 'иф-елсе' не може користити у сврху додељивања.
- Није корисно за извршавање наредби када су искази вишеструки, док се исказ 'иф-елсе' показује прикладнијим када се извршава више наредби.
- Угнежђени тернарни оператор је сложенији и не може се лако отклонити грешке, док је угнежђена изјава 'иф-елсе' лака за читање и одржавање.