In C++ wordt de ternair of voorwaardelijke operator (?:) is de kortste vorm van het schrijven van voorwaardelijke verklaringen. Het kan worden gebruikt als een inline voorwaardelijke instructie in plaats van if-else om voorwaardelijke code uit te voeren.
Syntaxis van ternaire operator (?:)
De syntaxis van de ternaire (of voorwaardelijke) operator is:
expression ? statement_1 : statement_2;>
Zoals de naam al doet vermoeden, werkt de ternaire operator op drie operanden waar
- uitdrukking: Te beoordelen voorwaarde.
- verklaring_1 : Verklaring die wordt uitgevoerd als de expressie resulteert in waar.
- verklaring_2: Code die moet worden uitgevoerd als de expressie false oplevert.
// afbeelding
De bovenstaande verklaring van de ternaire operator is gelijkwaardig aan de if-else-verklaring hieronder:
if ( condition ) { statement1; } else { statement2; }>
Voorbeeld van een ternaire operator in C++
C++
operators in Python-programmering
// 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;> }> |
>
>Uitvoer
Num - Test = 10>
In de bovenstaande code hebben we de ternaire operator gebruikt om de waarde van de variabele toe te wijzen op een afhankelijk van de waarde van een andere genoemde variabele test.
Opmerking: De ternaire operatoren hebben de op twee na laagste prioriteit, dus we moeten de uitdrukkingen zo gebruiken dat we fouten als gevolg van onjuist beheer van operatorprioriteit kunnen voorkomen.
C++ Geneste ternaire operator
Een geneste ternaire operator wordt gedefinieerd als het gebruik van een ternaire operator binnen een andere ternaire operator. Net als if-else-instructies kunnen de ternaire operatoren ook in elkaar worden genest.
Voorbeeld van het nesten van een ternaire operator in C++
In de onderstaande code vinden we de grootste van drie getallen met behulp van de geneste ternaire operator.
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;> }> |
>
>Uitvoer
Largest number is 39>
Zoals we kunnen zien is het mogelijk om ternaire operatoren in elkaar te nesten, maar de code wordt complex om te lezen en te begrijpen. Het wordt dus over het algemeen vermeden om geneste ternaire operatoren te gebruiken.
Bovendien mag de ternaire operator alleen worden gebruikt voor korte voorwaardelijke code. Voor grotere code verdienen de andere voorwaardelijke instructies de voorkeur.