Menu
Coddy logo textTech

Sentencia Unless

Parte de la sección Fundamentos del Journey de Ruby de Coddy — lección 25 de 88.

Ruby ofrece una forma única de expresar condiciones cuando quieres ejecutar código solo si algo no es verdadero. La sentencia unless es esencialmente lo opuesto a if.

Con if, el código se ejecuta cuando la condición es verdadera. Con unless, el código se ejecuta cuando la condición es falsa:

logged_in = false

unless logged_in
  puts "Please log in to continue"
end

Esto es equivalente a escribir if !logged_in, pero unless a menudo se lee de forma más natural. Piénsalo como "haz esto a menos que esa condición sea verdadera".

También puedes usar unless con else:

age = 20

unless age < 18
  puts "Access granted"
else
  puts "Access denied"
end

Sin embargo, cuando necesitas un bloque else, usar if suele ser más claro. La sentencia unless destaca cuando tienes una condición negativa simple sin una ruta alternativa. Elige la que haga que tu código sea más fácil de leer de un vistazo.

challenge icon

Desafío

Fácil

Se te proporcionan las siguientes variables:

has_ticket = false
is_vip = true
items_in_cart = 0
battery_level = 15
is_charging = false

Utiliza sentencias unless para evaluar cada escenario a continuación. Imprime el mensaje especificado solo cuando la condición sea falsa (que es cuando unless ejecuta su bloque).

  1. A menos que has_ticket sea true, imprime "Please purchase a ticket"
  2. A menos que is_vip sea true, imprime "VIP access required"
  3. A menos que items_in_cart sea mayor que 0, imprime "Your cart is empty"
  4. A menos que battery_level sea mayor que 20, imprime "Low battery warning"
  5. A menos que is_charging sea true o battery_level sea mayor que 50, imprime "Please charge your device"

Cada mensaje debe aparecer en su propia línea. Solo imprime los mensajes para las condiciones que activen el bloque unless.

Hoja de referencia

La sentencia unless ejecuta código cuando una condición es falsa, lo que la convierte en lo opuesto a if:

logged_in = false

unless logged_in
  puts "Please log in to continue"
end

Esto es equivalente a if !logged_in, pero a menudo se lee de forma más natural.

Puedes usar unless con else:

age = 20

unless age < 18
  puts "Access granted"
else
  puts "Access denied"
end

Sin embargo, unless se utiliza mejor para condiciones negativas simples sin un bloque else. Cuando necesitas una ruta alternativa, if suele ser más claro.

Pruébalo tú mismo

# Las variables ya están definidas para ti
has_ticket = false
is_vip = true
items_in_cart = 0
battery_level = 15
is_charging = false

# TODO: Escribe tu código a continuación
# Usa sentencias unless para verificar cada condición e imprimir el mensaje apropiado
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 Fundamentos