Ruby desde Cero

Estructuras de control

Ruby ofrece diferentes estructuras de control que nos permiten alterar el flujo de la ejecución del programa, entre ellas podemos destacar:

  • if
  • unless
  • case

Las estructuras de control es una parte excencial en el desarrollo de aplicaciones, ya que, es la parte que se encarga de tomar decisiones.

En este caso no usaremos la consola interactiva para probar nuestro codigo, sino. Que crearemos un archivo con la extension “.rb” para nuestras pruebas.

IF

La estructura de control IF, maneja el flujo de la aplicacion dependiendo de el resultado de una condicion.

Siguiendo con nuestro ejemplo del "juego RPG", cuando nuestro player esta muerto debemos realizar una accion, por lo general descontar un continue y renacer en el ultimo punto guardado.

Primer archivo: prueba_if.rb

#!/usr/bin/ruby

vida = 100
continues = 3
# pasan cosas que nos quitan vida

if vida == 0
    puts "El Personaje ha muerto"
    puts "Tu personaje va a revivir"
    continues = continues - 1
else
    puts "El juego continua con normalidad"
end


# En caso de necesitar el else if en ruby se usa la siguiente sintaxis
numero = 3

if numero > 5
    puts  "#{numero} es mayor que 5"
elsif numero == 3
    puts "#{numero} es igual a 3"
else
    puts "#{numero} es menor que 5 pero no es igual a 3"
end

Para correr el script desde la consola

ruby ~/Desktop/prueba_if.rb

El juego continua con normalidad
El numero es igual a 3

UNLESS

La estructura de control UNLESS, es similar a el IF en cuanto a estructura pero solo ejecuta el código si no es igual a la condición (==FALSE)

#!/usr/bin/ruby

numero = 1
unless numero == 1
    puts "El número no es el 1"
else
    puts "El número es el 1"
end

La respuesta en este caso sera:

ruby ~/Desktop/prueba_unless.rb

El número es el 1

Case

En caso de tener una variable que necesitamos comprobar muchos casos, en vez de usar muchos if con elsif, seria mas natural usar la expresion case

case variable
when [condicion]
    # code
when [condicion]
    # code
else
    # code
end

Un ejemplo mas claro del uso del case pude ser:

#!/usr/bin/ruby

edad =  5
case edad
when 0 .. 2
    puts "Bebe"
when 3 .. 12
    puts "Niño"
 when 13 .. 18
    puts "Adolescente"
else
    puts "Adulto"
end