Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
Artículos de Tecnología > Programación

¿Qué es un operador ternario?

Alura
Alex Felipe
Alex Felipe
27/01/2022

Compartir

o-que-e-o-operador-ternario.1643309337

Al desarrollar una aplicación, es muy común utilizar estructuras condicionales como ifs y elses o switch case. Pero en algún momento de nuestras vidas, probablemente una de estas pruebas que realizamos, es tan simple que arroja un valor para solo dos posibilidades.

Por ejemplo, supongamos que necesitamos crear una función para generar una bonificación y la regla para esta función es la siguiente:

  • Si el salario es superior a 1000 $, la bonificación es del 10%
  • Si el salario es inferior o igual a 1000 $, la bonificación es del 15%

Una solución sería usar un if y else como ya sabemos, por ejemplo en Java:


double salario = 1000; 
double bonus = 0.0;
if (salario > 1000) { bonus = salario * 0.10; }
 else { bonus = salario * 0.15; }
System.out.println(bonus);

En este ejemplo, el resultado es 150,0 porque el salario es inferior a 1000,0, $ es decir, una bonificación del 15%.

Sin embargo, tenga en cuenta que lo que estamos haciendo es solo una prueba muy básica que tiene solo una línea de código dentro del if o else. ¿Hay una forma más sencilla de resolver el mismo problema?

En un escenario similar a este, también podemos usar el operador ternario que funciona con el mismo concepto que if y else, sin embargo, la única diferencia es que necesitamos devolver un valor después de la prueba estrictamente en una sola línea.

double salario = 1000; 
double bonus = salario * (salario > 1000 ? 0.10 : 0.15); 
System.out.println(bonus);

Con este código de arriba tenemos el mismo resultado que antes, es decir, 150.0. Pero, ¿cómo funciona este operador ternario? La estructura de un operador ternario se entiende de la siguiente manera:

¿condición? valor si es verdadero: valor si es falso

Por lo tanto, inicialmente tenemos una prueba (podemos agregar cualquier prueba), es decir, cualquier prueba devuelve un valor booleano, entonces definimos el primer parámetro que es precisamente el valor que devolverá si la prueba es verdadera y el segundo que lo hará. ser devuelto si es falso!

Precisamente porque realiza estas 3 operaciones, lo llamamos operador ternario. ¿Pero esto es solo en Java? ¡No! ¡Varios idiomas implementan esta misma característica! Veamos algunos ejemplos:

C:

double salario = 1000; 
double bonus = salario * (salario > 1000 ? 0.10 : 0.15);

Ruby:

salario = 1000;
bonus = salario * (salario > 1000 ? 0.10 : 0.15);

C#:

double salario = 1000;
double bonus = salario * (salario > 1000 ? 0.10 : 0.15);

JavaScript:

var salario = 1000;
var bonus = salario * (salario > 1000 ? 0.10 : 0.15);

PHP:

$salario = 1000;
$bonus = $salario * ($salario > 1000 ? 0.10 : 0.15);

¡Tenga en cuenta que aunque son idiomas diferentes, el recurso del operador ternario contiene la misma estructura! Sin embargo, en algunos lenguajes de programación tenemos algunas variantes, es decir, el mismo concepto del operador ternario que vimos, pero con algunas diferencias en la sintaxis. Veamos algunos ejemplos:

Lua

 salario = 1000 bonus = salario * (salario > 1000 and 0.10 or 0.15)

fortran

salario = 1000 bonus = salario * merge(0.10, 0.15, salario > 1000)

¿Lo encontraste interesante? Echa un vistazo a la cantidad de operadores ternarios que nos proporciona el lenguaje python para resolver el mismo problema:

salario = 1000
bonus = salario * (lambda:0.15, lambda:0.10)[salario > 1000]()
bonus = salario * (0.15, 0.10)[salario > 1000]
bonus = salario * {True: 0.10, False: 0.15}[salario > 1000] 
bonus = salario * ((salario > 1000) and 0.10 or 0.15)

Sin embargo, siempre es importante recordar que el uso de estas variantes del operador ternario puede ser problemático, ya que dificulta a los desarrolladores que no están acostumbrados o simplemente no lo conocen.

Por lo tanto, le recomendamos que evite usar estas variantes tanto como sea posible. ¿Qué opinas del operador ternario? ¿Estás listo para usarlo en tu próximo algoritmo?

¿Quieres aprender más sobre programación? ¡En Alura tenemos varios cursos de programación online en diferentes idiomas! Como, por ejemplo, nuestros cursos de lógica con JavaScript y muchos otros.

Álex Felipe Víctor Vieira Alex es instructor y desarrollador y tiene experiencia en Java, Kotlin, Android. Creador de más de 40 cursos como Kotlin, Flutter, Android, persistencia de datos, comunicación de API web, personalización de pantalla, pruebas automatizadas, arquitectura de aplicaciones y Firebase. Es experto en Programación Orientada a Objetos, siempre con el objetivo de compartir las mejores prácticas y tendencias en el mercado de desarrollo de software. Trabajó durante 2 años como editor de contenidos en el blog de Alura y hoy sigue escribiendo artículos técnicos.

Alex Felipe
Alex Felipe

Alex é instrutor e desenvolvedor e possui experiência em Java, Kotlin, Android. Atualmente cria conteúdo no canal https://www.youtube.com/@AlexFelipeDev.

Artículo Anterior
Importando clases en Java
Siguiente Artículo
Heroku, Vercel y otras opciones de cloud como plataforma

Ver otros artículos sobre Programación

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Powered by

Caelum

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast