Menu
Coddy logo textTech

Operador ternario

Parte de la sección Lógica y flujo del Journey de Ruby de Coddy — lección 40 de 56.

El operador ternario es un atajo de una sola línea para un if/else que devuelve un valor. La sintaxis es condition ? value_if_true : value_if_false.

age = 20
status = age >= 18 ? "Eligible" : "Not Eligible"
puts status   # Eligible

Es lo mismo que escribir:

status = if age >= 18
           "Eligible"
         else
           "Not Eligible"
         end

Usa el operador ternario cuando ambas ramas devuelvan valores cortos. Si alguna de las ramas necesita más de una expresión, recurre a un if/else real: meter demasiado en un ternario hace que sea difícil de leer.

Puedes usarlo directamente dentro de otras expresiones, incluyendo la interpolación:

count = 1
puts "#{count} item#{count == 1 ? "" : "s"}"   # 1 elemento
count = 5
puts "#{count} item#{count == 1 ? "" : "s"}"   # 5 elementos
challenge icon

Desafío

Fácil

Lee un entero n de la entrada. Usando el operador ternario (sin bloques if/else), imprime exactamente:

<n> is <label>

donde label es:

  • positive cuando n > 0
  • negative cuando n < 0
  • zero cuando n == 0

Sugerencia: usa un ternario anidado, condition ? a : (other_condition ? b : c).

Para la entrada 5 la salida es 5 is positive. Para 0 es 0 is zero.

Hoja de referencia

El operador ternario es un atajo de una sola línea para if/else: condition ? value_if_true : value_if_false

age = 20
status = age >= 18 ? "Eligible" : "Not Eligible"  # "Eligible"

Los ternarios pueden anidarse y usarse dentro de la interpolación de cadenas:

count = 5
puts "#{count} item#{count == 1 ? "" : "s"}"  # 5 items

# Ternario anidado
n = 3
label = n > 0 ? "positive" : (n < 0 ? "negative" : "zero")

Usa el ternario solo para ramas cortas y simples — prefiere if/else cuando las ramas necesiten múltiples expresiones.

Pruébalo tú mismo

n = gets.to_i

# TODO: usa una expresión ternaria para construir la etiqueta, luego puts
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo