C ++ condicional? : Operador

Exp1 ? Exp2 : Exp3;

onde Exp1, Exp2 e Exp3 são expressões. Observe o uso e a localização do cólon. O valor de um? expressão é determinada assim: Exp1 é avaliada. Se for verdade, então Exp2 é avaliado e se torna o valor de todo? expressão. Se Exp1 for falso, então Exp3 é avaliado e seu valor se torna o valor da expressão.

O ? é chamado de operador ternário porque requer três operandos e pode ser usado para substituir instruções if-else, que têm a seguinte forma -

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

Por exemplo, considere o seguinte código -

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

O código acima pode ser reescrito assim -

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

Aqui, x recebe o valor 30 se y for menor que 10 e 40 se não for. Você pode tentar o seguinte exemplo -

#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 o código acima é compilado e executado, ele produz o seguinte resultado -

value of x: 40