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
.
Si quieres aprender más sobre el Operador Ternario
consulta el Curso de Introducción a la Programación leer más ⯈
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
Comparar dos números y determinar el mayor
Para comparar dos números y determinar cuál es mayor, podemos usar el operador ternario en lugar de una estructura if-else
más extensa.
#include <iostream>
int main() {
int a = 5;
int b = 8;
int mayor = (a > b) ? a : b;
std::cout << "El mayor número es " << mayor << std::endl;
return 0;
}
En este ejemplo, mayor
se asigna el valor de a
si a
es mayor que b
; de lo contrario, se le asigna el valor de b
.
Asignación de valores
El operador ternario es útil para asignar un valor basado en una condición simple en una sola línea de código.
#include <iostream>
#include <string>
int main() {
int edad = 20;
std::string categoria = (edad >= 18) ? "adulto" : "menor de edad";
std::cout << "La persona es " << categoria << std::endl;
return 0;
}
Aquí, categoria
se establece en "adulto"
si edad
es mayor o igual a 18; de lo contrario, se establece en "menor de edad"
.
Valor de retorno en métodos
El operador ternario también puede ser utilizado para determinar el valor de retorno de un método basado en una condición.
#include <iostream>
#include <string>
std::string obtenerSaludo(bool esFormal) {
return esFormal ? "Buenos días, señor(a)" : "Hola";
}
int main() {
bool esFormal = true;
std::cout << obtenerSaludo(esFormal) << std::endl;
return 0;
}
En este caso, la función obtenerSaludo
devuelve "Buenos días, señor(a)"
si esFormal
es verdadero; de lo contrario, devuelve "Hola"
.
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.