Condizionale C ++? : Operatore

Exp1 ? Exp2 : Exp3;

dove Exp1, Exp2 e Exp3 sono espressioni. Notare l'uso e il posizionamento dei due punti. Il valore di un? l'espressione è determinata in questo modo: viene valutata Exp1. Se è vero, allora Exp2 viene valutato e diventa il valore dell'intero? espressione. Se Exp1 è falso, viene valutato Exp3 e il suo valore diventa il valore dell'espressione.

Il ? è chiamato operatore ternario perché richiede tre operandi e può essere utilizzato per sostituire le istruzioni if-else, che hanno la seguente forma:

if(condition) {
   var = X;
} else {
   var = Y;
}

Ad esempio, considera il codice seguente:

if(y < 10) { 
   var = 30;
} else {
   var = 40;
}

Il codice sopra può essere riscritto in questo modo -

var = (y < 10) ? 30 : 40;

Qui, a x viene assegnato il valore di 30 se y è minore di 10 e 40 se non lo è. Puoi provare il seguente esempio:

#include <iostream>
using namespace std;
 
int main () {
   // Local variable declaration:
   int x, y = 10;

   x = (y < 10) ? 30 : 40;
   cout << "value of x: " << x << endl;
 
   return 0;
}

Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:

value of x: 40