|
Dec 22
|
Ruby ofrece estructuras condicionales o de control como if/else, case(switch) y otras que vere en esta entrada.
Declaracion if
Un bloque de codigo dado es ejecutado solo si la condicion es verdadera(true).
# codigo a ejecutar si la condicion es verdadera
end
Por ejemplo:
if edad >= 18
puts "Mayor de edad."
end
Mayor de edad.
En ruby es considerado verdadero todo aquello que no sea false o nil.
Declaracion if…else
Se puede definir un bloque de codigo a ser ejecutado cuando la condicion no se cumpla usando else(si no):
# codigo a ejecutar si la condicion es verdadera
else
# codigo a ejecutar si la condicion es falsa
end
Por ejemplo:
if edad >= 18
puts "Mayor de edad."
else
puts "Menor de edad."
end
Menor de edad.
Declaracion if…elsif…else
Mediante el uso de elsif podemos agregar condiciones con su respectivo bloque de codigo:
# codigo a ejecutar si condicion1 es verdadera
elsif condicion2
# codigo a ejecutar si condicion 1 es falsa y condicion2 verdadera
else
# codigo si ninguna de las condiciones anteriores era verdadera
end
Por ejemplo:
if idioma == "en"
puts "Welcome to my website."
elsif idioma == "es"
puts "Bienvenido a mi sitio."
else
puts "Idioma desconocido."
end
Bienvenido a mi sitio.
Ojo que es elsif y NO elseif como se podria esperar.
Otra cosa importante a notar es que se puede separar la condicion del codigo a ejecutar de tres formas diferentes, con una nueva linea como en los ejemplos, mediante el uso de la palabra clave then(entonces) luego de la condicion, o usando punto y coma.
if idioma == "en" then puts "Welcome to my website."
elsif idioma == "es" then puts "Bienvenido a mi sitio."
else puts "Idioma desconocido." end
La esctructura que obtenemos es “si (condicion) entonces (codigo)“. Como else no requiere condicion, se puede escribir el codigo junto sin necesidad de usar un separador, y el end tambien se puede agregar en la misma linea.
Y luego el tercer caso usando punto y coma.
if idioma == "en" ; puts "Welcome to my website."
elsif idioma == "es" ; puts "Bienvenido a mi sitio."
else puts "Idioma desconocido." end
Como nota, el uso de punto y coma en general se puede utilizar para escribir multiples lineas en una sola, por ejemplo:
El numero es 12
Declaracion unless
Esta declaracion que significa “a menos que” ejecuta un bloque de codigo si la condicion es falsa o nil.
# codigo a ejecutar si la condicion es falsa o nil
end
Por ejemplo:
unless edad > 18
puts "No puedes acceder a este sitio para mayores."
end
No puedes acceder a este sitio para mayores.
Declaracion unless…else
Asi como if, unless tambien dispone de else.
# codigo a ejecutar si la condicion es falsa o nil
else
# codigo a ejecutar si la condicion es verdadera
end
Por ejemplo:
unless edad > 18
puts "No puedes acceder a este sitio para mayores."
else
puts "Bienvenido al sitio."
end
Bienvenido al sitio.
Modificadores para if y unless
Ruby dispone de los llamados “modifiers” que permiten mover la estructura de control al final de la expresion, en esta entrada solo vere los modificadores de if y unless pero tambien hay para while y until, veamos la estructura.
La idea con if sigue siendo la misma, ejecutar el “codigo” si la condicion es verdadera, por ejemplo:
puts 'Aprobado.' if puntaje >= 60
Aprobado.
Para unless seria:
puts 'Aprobado.' unless puntaje < 60
Aprobado.
Esto nos permite poner el codigo de una forma un poco mas leible, este ultimo ejemplo se podria leer como “Escribir Aprobado a menos que el puntaje sea menor a 60″.
Declaracion case
Esta nos permite probar “casos” al comparar la expresion dada en “case” con las expresiones dadas en “when” y luego ejecutando el codigo correspondiente. En caso que ningun caso coincida se ejecuta el bloque de codigo bajo else:
when expr1, expr2
# codigo a ejecutar si expr0 coindice con expr1 o expr2
when expr3
# codigo a ejecutar si expr0 coincide con expr3
else
# codigo a ejecutar si no coindice con ningun caso
end
Por ejemplo:
case puntaje
when 100
puts "Puntaje perfecto"
when 80..100
puts "Excelente"
when 60..80
puts "Aprobado"
else
puts "Reprobado"
end
Aprobado
En este ejemplo hay 3 casos definidos ademas del else, el primero compara “puntaje” con el valor 100, el siguiente con el rango de 80 a 100 y el tercero con el rango de 60 a 80. Cabe mencionar que cuando un when es exitoso los demas casos no son evaluados.
Tambien aprovecho de mencionar que al igual que en la estructura if, la expresion puede ser separada del codigo mediante una linea nueva, la palabra clave then o un punto y coma.
Operador ternario
Ruby tambien cuenta con el operador ternario que nos provee de un atajo para tomar decisiones, la estructura es la siguiente:
La condicion es evaluada y devuelve “expresion si verdadero” cuando es verdadera y “expresion si falso” cuando es falsa, veamos un ejemplo:
puts ( edad >= 18 ) ? "Es mayor" : "No es mayor"
No es mayor
El parentesis no es obligacion. Al evaluar “edad >=18″ que resulta ser verdadero el operador ternario devuelve “Es mayor”, esto lo muestro en pantalla anteponiendo el metodo puts, tambien podria almacenar el resultado en una variable como:
es_o_no = ( edad >= 18 ) ? "Es mayor" : "No es mayor"
puts es_o_no
Que daria el mismo resultado, y asi acaba esta entrada.





Ultimos comentarios