cpp-condicional-ternario

Qué es y cómo usar el operador ternario en C++

El operador ternario en C++ es una forma concisa de realizar una evaluación condicional (también se le conoce como operador condicional).

Es adecuado para simplificar asignaciones basadas en una condición, ofreciendo una alternativa más compacta a la clásica estructura if-else.

Sintaxis básica

El operador ternario en C++ sigue esta sintaxis básica:

condicion ? expresion_verdadera : expresion_falsa
  • Condición: Es una expresión booleana que se evalúa como verdadera (true) o falsa (false).
  • Expresión Verdadera: Es el valor o la expresión que se devuelve si la condición es verdadera.
  • Expresión Falsa: Es el valor o la expresión que se devuelve si la condición es falsa.

Ejemplo básico

Supongamos que queremos determinar si un número es par o impar y almacenar el resultado en una variable llamada resultado. Podemos usar el operador ternario para hacer esto de manera más compacta.

#include <iostream>
#include <string>

int main() {
    int numero = 10;
    std::string resultado = (numero % 2 == 0) ? "par" : "impar";
    std::cout << "El número es " << resultado << std::endl;
    return 0;
}

En este código, el operador ternario evalúa si numero % 2 == 0 (es decir, si el número es par). Si la condición es verdadera, resultado se establece en "par"; si es falsa, se establece en "impar". Este enfoque reduce la necesidad de una estructura if-else más extensa.

Anidación del operador ternario

El operador ternario puede ser anidado para manejar múltiples condiciones.

#include <iostream>
#include <string>

int main() {
    int numero = 10;

    std::string resultado = (numero > 0) ? "positivo" :
                            (numero < 0) ? "negativo" : "cero";

    std::cout << "El número es " << resultado << std::endl;
    return 0;
}

Aquí,

  • Se evalúa primero si el numero es mayor que 0
  • Si es verdadero, resultado se establece en "positivo"
  • Si es falso, se evalúa si el número es menor que 0
  • Si esto también es falso, resultado se establece en "cero"

La anidación excesiva puede afectar la legibilidad del código. Así que tampoco abuséis de ella

Ejemplos prácticos

Estos ejemplos ilustran cómo usar el operador ternario para simplificar el código. No siempre es la mejor opción para todas las situaciones, especialmente si la lógica es compleja. En tales casos, las estructuras if-else pueden ofrecer una mejor claridad.