C++ Operador condicional ? :

C++ 运算符Operadores de C++

Exp1 ? Exp2 : Exp3;

Donde Exp1, Exp2 y Exp3 son expresiones. Observe el uso y la posición de los dos puntos. El valor de la expresión ? : depende del resultado de evaluar Exp1. Si Exp1 es verdadero, se evalúa Exp2, y el resultado de Exp2 es el valor de toda la expresión ? :. Si Exp1 es falso, se evalúa Exp3, y el resultado de Exp3 es el valor de toda la expresión ? :.

? se denomina operador ternario porque requiere tres operandos y puede usarse en lugar de una sentencia if-else como se muestra a continuación:

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

Por ejemplo, observe el siguiente código:

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

El código anterior puede escribirse como la siguiente declaración:

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

Aquí, si y es menor que 10, a var se le asigna 30; si y no es menor que 10, a var se le asigna 40. Vea el siguiente ejemplo:

Ejemplos

#include <iostream> using namespace std; int main () { // Declaración de variable local int x, y = 10; x = (y < 10) ? 30 : 40; cout << "value of x: " << x << endl; return 0; }

Cuando el código anterior se compila y ejecuta, produce los siguientes resultados:

value of x: 40

C++ 运算符Operadores de C++

Otras extensiones