У овом упутству ћемо научити о тернарном оператору у Ц ++ уз помоћ примера.
У Ц ++, тернарни оператор (познат и као условни оператор ) може се користити за замену иф … елсе у одређеним сценаријима.
Тернарни оператор у Ц ++
Тернарни оператер процењује стање теста и извршава блок кода на основу резултата услова.
Његова синтакса је
condition ? expression1 : expression2;
Овде condition
се оцењује и
- ако
condition
јестеtrue
,expression1
извршава се. - И, ако
condition
јестеfalse
,expression2
извршава се.
Тернарни оператор узима 3 операнда ( condition
, expression1
и expression2
). Отуда назив тернарни оператор .
Пример: Ц ++ Тернари Оператор
#include #include using namespace std; int main() ( double marks; // take input from users cout <> marks; // ternary operator checks if // marks is greater than 40 string result = (marks>= 40) ? "passed" : "failed"; cout << "You " << result << " the exam."; return 0; )
Резултат 1
Унесите оцене: 80 Положили сте испит.
Претпоставимо да корисник унесе 80 . Затим се стање marks>= 40
процењује на true
. Стога је први израз "passed"
додељен резултату.
Резултат 2
Унесите оцене: 39,5 Нисте пали на испиту.
Претпоставимо сада да корисник унесе 39.5 . Затим се стање marks>= 40
процењује на false
. Дакле, други израз "failed"
је додељен резултату.
Када користити тернарног оператора?
У Ц ++-у се тернарни оператор може користити за замену одређених врста if… else
израза.
На пример, можемо да заменимо овај код
#include using namespace std; int main() ( // Create a variable int number = -4; if (number> 0) cout << "Positive Number"; else cout << "Negative Number!"; return 0; )
са
#include #include using namespace std; int main() ( int number = -4; string result; // Using ternary operator result = (number> 0) ? "Positive Number!" : "Negative Number!"; cout << result << endl; return 0; )
Оутпут
Негативан број!
Овде оба програма дају исти излаз. Међутим, употреба тернарног оператора чини наш код читљивијим и чистијим.
Напомена: Тернарни оператор треба да користимо само ако је резултујућа изјава кратка.
Угњежђени тернарни оператери
Такође је могуће користити један тернарни оператор унутар другог тернарног оператора. У Ц ++ се назива угнежђени тернарни оператор.
Ево програма за откривање да ли је број позитиван, негативан или нула помоћу угнежђеног тернарног оператора.
#include #include using namespace std; int main() ( int number = 0; string result; // nested ternary operator to find whether // number is positive, negative, or zero result = (number == 0) ? "Zero" : ((number> 0) ? "Positive" : "Negative"); cout << "Number is " << result; return 0; )
Оутпут
Број је Нула
У горњем примеру, приметите употребу тернарних оператора,
(number == 0) ? "Zero" : ((number> 0) ? "Positive" : "Negative");
Ево,
(number == 0)
је први тест услов који проверава да ли је број 0 или не. Ако јесте, тада додељује вредност низа"Zero"
резултату.- Иначе, други тест услов
(number> 0)
се процењује ако је први условfalse
.
Напомена : Не препоручује се употреба угнежђених тернарних оператора. То је зато што наш код чини сложенијим.