C++ | Operador ternario anidado

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: 
 

  1. 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;
}
Producción: 

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;
}
  1.  
Producción: 

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;
}
Producción: 

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.

  1. Vaya a los primeros dos puntos ( : ) y haga coincidir el signo de interrogación más cercano a la izquierda ( ? )
  2. 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
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *