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"
endEsto 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"
endSin 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.
Desafío
FácilSe te proporcionan las siguientes variables:
has_ticket = false
is_vip = true
items_in_cart = 0
battery_level = 15
is_charging = falseUtiliza 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).
- A menos que
has_ticketseatrue, imprime"Please purchase a ticket" - A menos que
is_vipseatrue, imprime"VIP access required" - A menos que
items_in_cartsea mayor que0, imprime"Your cart is empty" - A menos que
battery_levelsea mayor que20, imprime"Low battery warning" - A menos que
is_chargingseatrueobattery_levelsea mayor que50, 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"
endEsto 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"
endSin 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 apropiadoEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 3Operadores lógicos Parte 47Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada del usuario10FizzBuzz con un giro
Descripción general del juegoEl método FizzBuzz2Variables y tipos de datos
Números y variablesTipo de dato StringTipo de dato BooleanTipo de dato SymbolComprobación de tipos de datosConvenciones de nomenclaturaResumen: Creación de variables5Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleIf - Else anidadosSentencia Unless8Bucles
Bucle For con rangosBucle WhileBreakNextRepaso - FactorialBucle TimesBucle UntilBucles anidadosRepaso - Entrada dinámica3Operadores Parte 1
Operadores aritméticosOperador móduloAtajos aritméticosResumen - Matemáticas simplesOperadores de comparación6Entrada y Salida Básica
Salida con putsSalida con print y pSalida con variablesEntrada con getsMétodo chompConversión de tiposResumen - Calculadora de edadResumen - Verdadero o falso