În C++, ternar sau operator condiționat (?:) este cea mai scurtă formă de scriere a declarațiilor condiționale. Poate fi folosit ca o instrucțiune condiționată inline în loc de if-else pentru a executa un cod condiționat.
matrice java dinamică
Sintaxa operatorului ternar ( ? : )
Sintaxa operatorului ternar (sau condiționat) este:
expression ? statement_1 : statement_2;>
După cum sugerează și numele, operatorul ternar lucrează pe trei operanzi unde
- expresie: Condiție de evaluat.
- declarație_1 : Declarație care va fi executată dacă expresia este evaluată la adevărată.
- declarație_2: Cod de executat dacă expresia este falsă.
// imagine
Declarația de mai sus a operatorului ternar este echivalentă cu declarația if-else prezentată mai jos:
if ( condition ) { statement1; } else { statement2; }> Exemplu de operator ternar în 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;> }> |
>
>Ieșire
cast int în șir
Num - Test = 10>
În codul de mai sus, am folosit operatorul ternar pentru a atribui valoarea variabilei pe unu în funcție de valoarea unei alte variabile numite Test.
Notă: Operatorul ternar are a treia cea mai mică precedență, așa că trebuie să folosim expresiile astfel încât să putem evita erorile din cauza gestionării necorespunzătoare a priorității operatorului.
Operator ternar imbricat C++
Un operator ternar imbricat este definit ca folosirea unui operator ternar în interiorul altui operator ternar. La fel ca instrucțiunile if-else, operatorul ternar poate fi, de asemenea, imbricat unul în celălalt.
Exemplu de imbricare a operatorului ternar în C++
În codul de mai jos, vom găsi cel mai mare dintre cele trei numere folosind operatorul ternar imbricat.
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;> }> |
>
>
imagini de reducereIeșire
Largest number is 39>
După cum putem vedea, este posibil să cuibărăm operatori ternari unul în altul, dar codul devine complex de citit și de înțeles. Deci, în general este evitată utilizarea operatorilor ternari imbricați.
Mai mult, operatorul ternar ar trebui folosit doar pentru codul condiționat scurt. Pentru cod mai mare, ar trebui să fie preferate celelalte instrucțiuni condiționale.