logo

Ternárny alebo podmienený operátor C++

V C++ je trojčlenný alebo podmienený operátor (? :) je najkratšia forma písania podmienených príkazov. Môže sa použiť ako vložený podmienený príkaz namiesto if-else na vykonanie nejakého podmieneného kódu.

Syntax ternárneho operátora ( ? : )

Syntax ternárneho (alebo podmieneného) operátora je:



expression   ?     statement_1     :     statement_2;>

Ako už názov napovedá, ternárny operátor pracuje na troch operandoch, kde

  • výraz: Podmienka na posúdenie.
  • výpis_1 : Príkaz, ktorý sa vykoná, ak sa výraz vyhodnotí ako pravdivý.
  • statement_2: Kód, ktorý sa má vykonať, ak sa výraz vyhodnotí ako nepravda.

// obrázok

Vyššie uvedené vyhlásenie ternárneho operátora je ekvivalentné s tvrdením if-else uvedeným nižšie:



vlk alebo líška
  if   ( condition ) {     statement1;  }   else   {    statement2;  }>

Príklad ternárneho operátora v C++

C++






// C++ program to illustrate the use of ternary operator> #include> using> namespace> std;> > int> main()> {> > >// creating a variable> >int> num, test = 40;> > >// assigning the value of num based on the value of test> >// variable> >num = test <10 ? 10 : test + 10;> > >printf>(>'Num - Test = %d'>, num - test);> > >return> 0;> }>

>

1 milión v číslach

>

Výkon

Num - Test = 10>

Vo vyššie uvedenom kóde sme použili ternárny operátor na priradenie hodnoty premennej na jeden v závislosti od hodnoty inej pomenovanej premennej test.

Poznámka: Ternárny operátor má tretiu najnižšiu prioritu, takže musíme používať výrazy tak, aby sme sa vyhli chybám v dôsledku nesprávneho riadenia priority operátorov.

Vnorený ternárny operátor C++

Vnorený ternárny operátor je definovaný ako použitie ternárneho operátora vo vnútri iného ternárneho operátora. Podobne ako príkazy if-else, aj ternárny operátor môže byť vnorený jeden do druhého.

Príklad vnoreného ternárneho operátora v C++

V nižšie uvedenom kóde nájdeme najväčšie z troch čísel pomocou vnoreného ternárneho operátora.

C++




// C++ program to find the largest of the three number using> // ternary operator> #include> using> namespace> std;> > int> main()> {> > >// Initialize variable> >int> A = 39, B = 10, C = 23;> > >// Evaluate largest of three using ternary operator> >int> maxNum> >= (A>B) ? ((A> C)> A: C): ((B> C)> B: C);> > >cout <<>'Largest number is '> << maxNum << endl;> > >return> 0;> }>

>

>

Výkon

algoritmus kmp
Largest number is 39>

Ako vidíme, je možné vnoriť ternárne operátory jeden do druhého, ale kód sa stáva zložitým na čítanie a pochopenie. Vo všeobecnosti sa teda vyhýbame používaniu vnorených ternárnych operátorov.

Okrem toho by sa ternárny operátor mal používať iba pre krátky podmienený kód. Pre väčší kód by sa mali uprednostniť iné podmienené príkazy.