logo

Ternární nebo podmíněný operátor C++

V C++ je trojice nebo podmíněný operátor (? :) je nejkratší forma psaní podmíněných příkazů. Může být použit jako vložený podmíněný příkaz namísto if-else ke spuštění nějakého podmíněného kódu.

Syntaxe ternárního operátora ( ? : )

Syntaxe ternárního (nebo podmíněného) operátoru je:



expression   ?     statement_1     :     statement_2;>

Jak název napovídá, ternární operátor pracuje na třech operandech kde

  • výraz: Stav k posouzení.
  • výpis_1 : Příkaz, který bude proveden, pokud se výraz vyhodnotí jako true.
  • výpis_2: Kód, který se má provést, pokud je výraz vyhodnocen jako nepravda.

// obraz

Výše uvedený příkaz ternárního operátoru je ekvivalentní příkazu if-else uvedenému níže:



  if   ( condition ) {     statement1;  }   else   {    statement2;  }>

Příklad ternárního operátora v C++

C++






převod řetězce na int java

// 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;> }>

>

>

Výstup

Num - Test = 10>

Ve výše uvedeném kódu jsme použili ternární operátor k přiřazení hodnoty proměnné na jednom v závislosti na hodnotě jiné pojmenované proměnné test.

Poznámka: Ternární operátor má třetí nejnižší prioritu, takže musíme používat výrazy tak, abychom se vyhnuli chybám způsobeným nesprávnou správou priority operátorů.

Vnořený ternární operátor C++

Vnořený ternární operátor je definován jako použití ternárního operátoru uvnitř jiného ternárního operátoru. Stejně jako příkazy if-else může být ternární operátor také vnořen jeden do druhého.

Příklad vnoření ternárního operátora v C++

V níže uvedeném kódu najdeme největší ze tří čísel pomocí vnořeného ternárního operátoru.

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ýstup

Largest number is 39>

Jak vidíme, je možné vnořovat ternární operátory jeden do druhého, ale kód je složitý na čtení a pochopení. Obecně se tedy vyhýbáme používání vnořených ternárních operátorů.

Navíc by měl být ternární operátor používán pouze pro krátký podmíněný kód. Pro větší kód by měly být upřednostňovány jiné podmíněné příkazy.