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