Условният оператор е известен също като a троичен оператор . Условните изрази са операторите за вземане на решения, които зависят от изхода на израза. Той е представен с два символа, т.е. '?' и ':'.
Тъй като условният оператор работи с три операнда, той е известен също като троичен оператор.
Поведението на условния оператор е подобно на ' ако-иначе ' изявление като изявление 'if-else' също е изявление за вземане на решение.
Синтаксис на условен оператор
Expression1? expression2: expression3;
Графичното представяне на горния синтаксис е показано по-долу:
Значение на горния синтаксис.
- В горния синтаксис изразът1 е булево условие, което може да бъде истинска или невярна стойност.
- Ако изразът1 доведе до истинска стойност, тогава изразът2 ще се изпълни.
- Твърди се, че изразът2 е верен само когато връща различна от нула стойност.
- Ако изразът1 върне невярна стойност, изразът3 ще се изпълни.
- Твърди се, че изразът3 е false само когато връща нулева стойност.
Нека разберем троичния или условния оператор чрез пример.
#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 ще се изпълни, т.е. (printf('има право на гласуване')), в противен случай ще се изпълни оператор2, т.е. (printf('няма право на гласуване') ).
Нека да наблюдаваме резултата от горната програма.
Ако предоставим възрастта на потребителя под 18 години, изходът ще бъде:
Ако предоставим възрастта на потребителя над 18 години, изходът ще бъде:
Както можем да забележим от горните два изхода, че ако условието е вярно, тогава операторът1 се изпълнява; в противен случай ще се изпълни statement2.
Досега наблюдавахме как условният оператор проверява условието и въз основа на условието изпълнява изразите. Сега ще видим как се използва условен оператор за присвояване на стойност на променлива.
проверете за null в java
Нека разберем този сценарий чрез пример.
#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; }
В горния код сме декларирали две променливи, т.е. „a“ и „b“ и сме присвоили стойност 5 на променливата „a“. След декларацията ние присвояваме стойност на променливата 'b' с помощта на условния оператор. Ако стойността на 'a' е равна на 5, тогава на 'b' се присвоява стойност 3, в противен случай 2.
Изход
Горният резултат показва, че стойността на променливата „b“ е 3, тъй като стойността на променливата „a“ е равна на 5.
Както знаем, поведението на условния оператор и 'if-else' е подобно, но имат някои разлики. Нека да разгледаме техните различия.
- Условният оператор е единичен програмен оператор, докато операторът 'if-else' е програмен блок, в който операторите са поставени под скобите.
- Условен оператор може също да се използва за присвояване на стойност на променливата, докато изразът „if-else“ не може да се използва за целите на присвояването.
- Не е полезно за изпълнение на операторите, когато операторите са множество, докато изразът „if-else“ се оказва по-подходящ при изпълнение на множество оператори.
- Вложеният троичен оператор е по-сложен и не може лесно да се отстрани грешка, докато вложеният израз „if-else“ е лесен за четене и поддръжка.