Compartir a través de


Operador condicional: ¿? :

expression ? expression : expression

Comentarios

¿El operador condicional (? :) es un operador ternario (utiliza tres operandos).el operador condicional funciona como sigue:

  • El primer operando se convierte implícitamente en bool.Se evalúa y todos los efectos secundarios se completa antes de continuar.

  • Si el primer operando se evalúa como TRUE (1), se evalúa el segundo operando.

  • Si el primer operando se evalúa como Falso (0), se evalúa el tercer operando.

El resultado del operador condicional es el resultado de se evalúa cualquier operando — el segundo o el tercero.Solo uno de los operandos pasados se evalúa en una expresión condicional.

Las expresiones condicionales tienen de derecha a izquierda asociatividad.El primer operando debe ser entero o de puntero.Las reglas siguientes se aplican a la segunda y tercera expresiones:

  • Si ambas expresiones son del mismo tipo, el resultado es de ese tipo.

  • Si ambas expresiones son de aritmética o de tipos de enumeración, conversiones aritméticas usuales (tratadas en conversiones aritméticas) se realizan para convertirlos en un tipo común.

  • Si ambas expresiones son de tipos de puntero o si uno es un tipo de puntero y otro es una expresión constante que se evalúa en 0, las conversiones de puntero se realizan para convertirlos en un tipo común.

  • Si ambas expresiones son tipos de referencia, las conversiones de referencia se realizan para convertirlos en un tipo común.

  • Si ambas expresiones son de vacía del tipo, el tipo común es de tipo void.

  • Si ambas expresiones son de un tipo de clase determinado, el tipo común es ese tipo de clase.

Cualquier combinación de segundo y tercer operandos no en la lista anterior no es válida.El tipo del resultado es el tipo común, y es un valor l si el segundo y tercer operandos son del mismo tipo y ambos son l.

Ejemplo

// expre_Expressions_with_the_Conditional_Operator.cpp
// compile with: /EHsc
// Demonstrate conditional operator
#include <iostream>
using namespace std;
int main() {
   int i = 1, j = 2;
   cout << ( i > j ? i : j ) << " is greater." << endl;
}

Vea también

Referencia

Operadores de C++

Operador Prioridad y Asociatividad

Conceptos

Operador de la Condicional-Expresión