El operador ternario, también conocido como operador condicional, utiliza tres operandos para realizar la operación.
Sintaxis:
op1 ? op2 : op3;
Operador ternario anidado: el operador ternario se puede anidar. Un operador ternario anidado puede tener muchas formas como:
- a ? antes de Cristo
- a ? antes de Cristo ? d: e? f: g? hola
- a ? b ? c : d : e
Entendamos las sintaxis una por una:
- a ? b : c => Este operador ternario es similar a la instrucción if-else. Por lo tanto, se puede expresar en forma de declaración if-else.
Expresión usando el operador ternario:
a ? b : c
Expresión usando la declaración if else:
if ( a ) then b execute else c execute
2. Ejemplo:
C++
// C++ program to illustrate // nested ternary operators #include <bits/stdc++.h> using namespace std; int main() { cout << "Execute expression using" << " ternary operator: "; // Execute expression using // ternary operator int a = 2 > 5 ? 2 : 5; cout << a << endl; cout << "Execute expression using " << "if else statement: "; // Execute expression using if else if ( 2 > 5) cout << "2"; else cout << "5"; return 0; }
Execute expression using ternary operator: 5 Execute expression using if else statement: 5
2. un ? antes de Cristo ? d: e? f: g? h : i => Este operador ternario anidado se puede dividir en declaraciones if, else y else-if. La expresión puede dividirse en partes más pequeñas en el operador ternario y en la declaración if else que se dan a continuación:
Expresión usando el operador ternario:
a ? b : c ? d : e ? f : g ? h : i
Expresión usando la declaración if else:
if a then b else if c then d else if e then f else if g then h else i
CPP
// C++ program to illustrate // nested ternary operators #include <bits/stdc++.h> using namespace std; int main() { cout << "Execute expression using " << "ternary operator: "; int a = 2 > 3 ? 2 : 3 > 4 ? 3 : 4; cout << a << endl; cout << "Execute expression using " << "if else statement: "; if ( 2 > 3 ) cout << "2"; else if ( 3 > 4 ) cout << "3"; else cout << "4"; return 0; }
Execute expression using ternary operator: 4 Execute expression using if else statement: 4
3. un ? b ? c : d : e => A continuación se muestra la expansión de la expresión usando el operador ternario y la declaración if else.
Expresión usando operador ternario:
a ? b ? c : d : e
Expresión usando la declaración if else:
if ( a ) if ( b ) c execute else d execute else e execute
CPP
// C++ program to illustrate // nested ternary operators #include <bits/stdc++.h> using namespace std; int main() { cout << "Execute expression using " << "ternary operator: "; int a = 4 > 3 ? 2 > 4 ? 2 : 4 : 3; cout << a << endl; cout << "Execute expression using " << "if else statement: "; if ( 4 > 3 ) if ( 2 > 4 ) cout << "2"; else cout << "4"; else cout << "3"; return 0; }
Execute expression using ternary operator: 4 Execute expression using if else statement: 4
// mejorado por sathiyamoorthics19
Ejemplo 2: Evalúe la siguiente afirmación.
5 > 2 ? 4 > 1 ? 5>7? 10 : 5 > 8 ? 6 > 2 ? 20 : 30 : 5 > 6 ? 40 : 50 : 7 > 2 ? 60 : 70 : 8 > 9 ? 80 : 90 ;
Para resolver el problema anterior, se debe conocer el concepto de agrupación.
Primero, verifique que haya un número igual de dos puntos y un signo de interrogación. Si es igual, la declaración es válida, si no es una declaración de error.
- Vaya a los primeros dos puntos ( : ) y haga coincidir el signo de interrogación más cercano a la izquierda ( ? )
- Repita el proceso y continúe hasta que no queden dos puntos (:)
Puntos clave :
El primer signo de interrogación (?) hasta los dos puntos (:) se considera la expresión 2 y desde esos dos puntos (:) hasta el último se considera la expresión 3
( i ) 5 > 2 es verdadero, así que vaya a la expresión 2 que es un signo de interrogación ( ? ) a dos puntos ( : ) se considera como expresión 2 y ejecute.
( ii ) 4 > 1 es verdadero, así que llegue a la expresión 2 y ejecute.
(iii) 5 > 7 es falso, así que vaya a la expresión 3 y ejecute.
(iv) 5 > 8 es falso, así que vaya a la expresión 3 y ejecute.
( v ) 5 > 6 es falso nuevamente, así que pase a la expresión 3 y la respuesta es 50.
C
#include <stdio.h> int main() { int result; result =5>2 ? 4 > 1 ? 5>7 ? 10 : 5 > 8 ? 6 > 2 ? 20 : 30 : 5 > 6 ? 40 : 50 : 7 > 2 ? 60 : 70 : 8 > 9 ? 80 : 90 ; printf("Output : %d", result); return 0; } //improved by sathiyamoorthics19
Output : 50
Publicación traducida automáticamente
Artículo escrito por tanmay2904 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA