V C++ je trojni oz pogojni operator (? :) je najkrajša oblika pisanja pogojnih stavkov. Uporablja se lahko kot vgrajeni pogojni stavek namesto if-else za izvajanje neke pogojne kode.
Sintaksa ternarnega operatorja ( ? :)
Sintaksa ternarnega (ali pogojnega) operatorja je:
expression ? statement_1 : statement_2;>
Kot že ime pove, ternarni operater deluje na treh operandih, kjer
- izraz: Pogoj, ki ga je treba oceniti.
- izjava_1 : Izjava, ki bo izvedena, če je izraz ovrednoten kot resničen.
- izjava_2: Koda, ki se izvede, če je izraz ovrednoten kot false.
// slika
Zgornji stavek ternarnega operaterja je enakovreden spodnjemu stavku if-else:
if ( condition ) { statement1; } else { statement2; }>
Primer ternarnega operatorja v C++
C++
runas v lupini powershell
// 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;> }> |
>
>Izhod
Num - Test = 10>
V zgornji kodi smo za dodelitev vrednosti spremenljivki uporabili ternarni operator na enem odvisno od vrednosti druge imenovane spremenljivke test.
Opomba: Ternarni operator ima tretjo najnižjo prednost, zato moramo izraze uporabljati tako, da se lahko izognemo napakam zaradi nepravilnega upravljanja prednosti operatorjev.
C++ ugnezdeni ternarni operator
Ugnezdeni ternarni operator je definiran kot uporaba ternarnega operatorja znotraj drugega ternarnega operatorja. Tako kot stavke if-else je lahko tudi ternarni operator ugnezden drug v drugega.
Primer gnezdenja ternarnega operatorja v C++
V spodnji kodi bomo našli največje od treh števil z uporabo ugnezdenega ternarnega operatorja.
če drugače v lupini bash
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;> }> |
>
>Izhod
Largest number is 39>
Kot lahko vidimo, je mogoče trinarne operatorje ugnezditi enega v drugega, vendar koda postane zapletena za branje in razumevanje. Zato se na splošno izogibamo uporabi ugnezdenih ternarnih operatorjev.
Poleg tega je treba ternarni operator uporabljati samo za kratko pogojno kodo. Za večjo kodo bi morali imeti prednost drugi pogojni stavki.