logo

C++ Operador ternari o condicional

En C++, el ternari o operador condicional (?:) és la forma més curta d'escriure enunciats condicionals. Es pot utilitzar com una instrucció condicional en línia en lloc de if-else per executar algun codi condicional.

java booleà a cadena

Sintaxi de l'operador ternari (?:)

La sintaxi de l'operador ternari (o condicional) és:



expression   ?     statement_1     :     statement_2;>

Com el seu nom indica, l'operador ternari treballa en tres operands on

  • expressió: Condició a avaluar.
  • declaració_1 : Declaració que s'executarà si l'expressió s'avalua com a vertadera.
  • declaració_2: Codi que s'executarà si l'expressió s'avalua com a falsa.

// imatge

La declaració anterior de l'operador ternari és equivalent a la declaració if-else que es mostra a continuació:



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

Exemple d'operador ternari en 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;> }>

>

>

Sortida

Num - Test = 10>

En el codi anterior, hem utilitzat l'operador ternari per assignar el valor de la variable en una depenent del valor d'una altra variable anomenada prova.

Nota: L'operador ternari té la tercera precedència més baixa, de manera que hem d'utilitzar les expressions de manera que puguem evitar errors a causa d'una gestió inadequada de la precedència de l'operador.

Operador ternari anidat C++

Un operador ternari imbricat es defineix com l'ús d'un operador ternari dins d'un altre operador ternari. Igual que les declaracions if-else, l'operador ternari també es pot imbricar un dins de l'altre.

Exemple d'operador ternari d'imbricació en C++

Al codi següent, trobarem el més gran dels tres nombres utilitzant l'operador ternari imbricat.

C++




bash si condició

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

>

>

Sortida

Largest number is 39>

Com podem veure, és possible niar operadors ternaris entre si, però el codi es fa complex de llegir i entendre. Per tant, generalment s'evita utilitzar operadors ternaris imbricats.

A més, l'operador ternari només s'ha d'utilitzar per a codi condicional curt. Per a un codi més gran, s'han de preferir les altres declaracions condicionals.