logo

Operatore ternario o condizionale C++

In C++, il ternario O operatore condizionale ( ? : ) è la forma più breve per scrivere istruzioni condizionali. Può essere utilizzato come istruzione condizionale in linea al posto di if-else per eseguire del codice condizionale.

Sintassi dell'operatore ternario ( ? : )

La sintassi dell'operatore ternario (o condizionale) è:



expression   ?     statement_1     :     statement_2;>

Come suggerisce il nome, l'operatore ternario lavora su tre operandi dove

  • espressione: Condizione da valutare.
  • dichiarazione_1 : Istruzione che verrà eseguita se l'espressione risulta vera.
  • dichiarazione_2: Codice da eseguire se l'espressione restituisce false.

// Immagine

L'istruzione precedente dell'operatore ternario è equivalente all'istruzione if-else fornita di seguito:



macchina virtuale Java
  if   ( condition ) {     statement1;  }   else   {    statement2;  }>

Esempio di operatore ternario in 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;> }>

>

>

Produzione

file aperto in Java
Num - Test = 10>

Nel codice sopra abbiamo utilizzato l'operatore ternario per assegnare il valore della variabile nessuno a seconda del valore di un'altra variabile denominata test.

Nota: L'operatore ternario ha la terza precedenza più bassa, quindi dobbiamo usare le espressioni in modo da evitare errori dovuti ad una gestione impropria della precedenza degli operatori.

Operatore ternario annidato C++

Un operatore ternario annidato viene definito come l'utilizzo di un operatore ternario all'interno di un altro operatore ternario. Come le istruzioni if-else, anche gli operatori ternari possono essere annidati uno dentro l'altro.

Esempio di operatore ternario annidato in C++

Nel codice seguente troveremo il più grande dei tre numeri utilizzando l'operatore ternario nidificato.

C++

cos'è il clustering




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

>

>

coppia Java
Produzione

Largest number is 39>

Come possiamo vedere è possibile annidare gli operatori ternari l'uno nell'altro ma il codice diventa complesso da leggere e comprendere. Pertanto, in genere si evita di utilizzare operatori ternari nidificati.

Inoltre, l'operatore ternario dovrebbe essere utilizzato solo per il codice condizionale breve. Per codici più grandi, dovrebbero essere preferite le altre istruzioni condizionali.