logo

Условен оператор в C

Условният оператор е известен също като a троичен оператор . Условните изрази са операторите за вземане на решения, които зависят от изхода на израза. Той е представен с два символа, т.е. '?' и ':'.

Тъй като условният оператор работи с три операнда, той е известен също като троичен оператор.

Поведението на условния оператор е подобно на ' ако-иначе ' изявление като изявление 'if-else' също е изявление за вземане на решение.

Синтаксис на условен оператор

 Expression1? expression2: expression3; 

Графичното представяне на горния синтаксис е показано по-долу:

Условен оператор в C

Значение на горния синтаксис.

  • В горния синтаксис изразът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 години, изходът ще бъде:

Условен оператор в C

Ако предоставим възрастта на потребителя над 18 години, изходът ще бъде:

Условен оператор в C

Както можем да забележим от горните два изхода, че ако условието е вярно, тогава операторът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.

Изход

Условен оператор в C

Горният резултат показва, че стойността на променливата „b“ е 3, тъй като стойността на променливата „a“ е равна на 5.

Както знаем, поведението на условния оператор и 'if-else' е подобно, но имат някои разлики. Нека да разгледаме техните различия.

  • Условният оператор е единичен програмен оператор, докато операторът 'if-else' е програмен блок, в който операторите са поставени под скобите.
  • Условен оператор може също да се използва за присвояване на стойност на променливата, докато изразът „if-else“ не може да се използва за целите на присвояването.
  • Не е полезно за изпълнение на операторите, когато операторите са множество, докато изразът „if-else“ се оказва по-подходящ при изпълнение на множество оператори.
  • Вложеният троичен оператор е по-сложен и не може лесно да се отстрани грешка, докато вложеният израз „if-else“ е лесен за четене и поддръжка.