C++ kalboje trejetas arba sąlyginis operatorius (?:) yra trumpiausia sąlyginių teiginių rašymo forma. Jis gali būti naudojamas kaip eilutinis sąlyginis sakinys vietoje if-else, norint vykdyti tam tikrą sąlyginį kodą.
Trinaro operatoriaus sintaksė ( ? : )
Trečiojo (arba sąlyginio) operatoriaus sintaksė yra tokia:
expression ? statement_1 : statement_2;>
Kaip rodo pavadinimas, trijų dalių operatorius dirba su trimis operandais
- išraiška: Būklė, kurią reikia įvertinti.
- pareiškimas_1 : teiginys, kuris bus vykdomas, jei išraiška bus įvertinta kaip tiesa.
- pareiškimas_2: Kodas, kuris turi būti vykdomas, jei išraiška vertinama kaip false.
// vaizdas
Pirmiau pateiktas trijų komponentų operatoriaus teiginys yra lygiavertis toliau pateiktam if-else teiginiui:
if ( condition ) { statement1; } else { statement2; }> Trinaro operatoriaus pavyzdys 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;> }> |
>
>Išvestis
Num - Test = 10>
Aukščiau pateiktame kode kintamojo reikšmei priskirti naudojome trijų dalių operatorių ant vieno priklausomai nuo kito pavadinto kintamojo reikšmės bandymas.
Pastaba: Trečias operatorius turi trečią mažiausią pirmenybę, todėl turime naudoti tokias išraiškas, kad galėtume išvengti klaidų dėl netinkamo operatorių pirmumo valdymo.
C++ įdėtas trijų dalių operatorius
Įdėtas trinarinis operatorius apibrėžiamas kaip trinarinis operatorius kitame trečiame operatoriuje. Kaip ir if-else teiginiai, trijų dalių operatorius taip pat gali būti įdėtas vienas į kitą.
Trinaro operatoriaus įterpimo pavyzdys C++
Žemiau esančiame kode rasime didžiausią iš trijų skaičių naudodami įdėtą trijų dalių operatorių.
C++
užblokuoti kontaktai
// 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;> }> |
>
>Išvestis
Largest number is 39>
Kaip matome, galima sudėti trejetą operatorių vieną į kitą, tačiau kodą sunku skaityti ir suprasti. Taigi, paprastai vengiama naudoti įdėtus trijų dalių operatorius.
Be to, trijų dalių operatorius turėtų būti naudojamas tik trumpam sąlyginiam kodui. Jei kodas didesnis, pirmenybė turėtų būti teikiama kitiems sąlyginiams teiginiams.