En C++, el ternario o operador condicional ( ? : ) es la forma más corta de escribir declaraciones condicionales. Se puede utilizar como una declaración condicional en línea en lugar de if-else para ejecutar algún código condicional.
Sintaxis del operador ternario (?:)
La sintaxis del operador ternario (o condicional) es:
expression ? statement_1 : statement_2;>
Como sugiere el nombre, el operador ternario trabaja con tres operandos donde
- expresión: Condición a evaluar.
- declaración_1 : Declaración que se ejecutará si la expresión se evalúa como verdadera.
- declaración_2: Código que se ejecutará si la expresión se evalúa como falsa.
// imagen
java xor
La declaración anterior del operador ternario es equivalente a la declaración if-else que se proporciona a continuación:
if ( condition ) { statement1; } else { statement2; }> Ejemplo de operador ternario en C++
C++
// C++ program to illustrate the use of ternary operator> #include> using> namespace> std;> > int> main()> {> > >// creating a variable> >int> num, test = 40;> > >// assigning the value of num based on the value of test> >// variable> >num = test <10 ? 10 : test + 10;> > >printf>(>'Num - Test = %d'>, num - test);> > >return> 0;> }> |
>
>Producción
Num - Test = 10>
En el código anterior, hemos utilizado el operador ternario para asignar el valor de la variable. en uno dependiendo del valor de otra variable llamada prueba.
Nota: El operador ternario tiene la tercera precedencia más baja, por lo que debemos usar expresiones que podamos evitar errores debido a una gestión inadecuada de la precedencia del operador.
Operador ternario anidado de C++
Un operador ternario anidado se define como el uso de un operador ternario dentro de otro operador ternario. Al igual que las declaraciones if-else, el operador ternario también se puede anidar uno dentro de otro.
Ejemplo de operador ternario anidado en C++
En el siguiente código, encontraremos el mayor de tres números utilizando el operador ternario anidado.
C++
// C++ program to find the largest of the three number using> // ternary operator> #include> using> namespace> std;> > int> main()> {> > >// Initialize variable> >int> A = 39, B = 10, C = 23;> > >// Evaluate largest of three using ternary operator> >int> maxNum> >= (A>B) ? ((A> C) ? A : C) : ((B> C) ? B : C);> > >cout <<>'Largest number is '> << maxNum << endl;> > >return> 0;> }> |
>
>
algoritmo para búsqueda binariaProducción
Largest number is 39>
Como podemos ver, es posible anidar operadores ternarios entre sí, pero el código se vuelve complejo de leer y comprender. Por lo tanto, generalmente se evita utilizar operadores ternarios anidados.
Además, el operador ternario sólo debe utilizarse para código condicional corto. Para código más grande, se deben preferir las otras declaraciones condicionales.