Exp1 ? Exp2 : Exp3;
donde Exp1, Exp2 y Exp3 son expresiones. Observe el uso y la ubicación del colon. ¿El valor de un? expresión se determina así: Se evalúa Exp1. Si es cierto, entonces Exp2 se evalúa y se convierte en el valor de la totalidad? expresión. Si Exp1 es falso, entonces se evalúa Exp3 y su valor se convierte en el valor de la expresión.
Los ? se llama operador ternario porque requiere tres operandos y se puede usar para reemplazar declaraciones if-else, que tienen la siguiente forma:
if(condition) {
var = X;
} else {
var = Y;
}
Por ejemplo, considere el siguiente código:
if(y < 10) {
var = 30;
} else {
var = 40;
}
El código anterior se puede reescribir así:
var = (y < 10) ? 30 : 40;
Aquí, a x se le asigna el valor de 30 si y es menor que 10 y 40 si no lo es. Puedes probar el siguiente ejemplo:
#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;
}
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
value of x: 40