¿C ++ condicional? : Operador

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