Ruby Language si, elsif, else y end


Ejemplo

Ruby ofrece las expresiones if y else esperadas para la lógica de bifurcación, terminadas por la palabra clave end :

# Simulate flipping a coin
result = [:heads, :tails].sample

if result == :heads
  puts 'The coin-toss came up "heads"'
else
  puts 'The coin-toss came up "tails"'
end

En Ruby, if las declaraciones son expresiones que se evalúan como un valor, y el resultado se puede asignar a una variable:

status = if age < 18
           :minor
         else
           :adult
         end

Ruby también ofrece operadores ternarios de estilo C ( consulte aquí para obtener detalles ) que se pueden expresar como:

some_statement ? if_true : if_false  

Esto significa que el ejemplo anterior usando if-else también puede escribirse como

status = age < 18 ? :minor : :adult

Además, Ruby ofrece la palabra clave elsif que acepta una expresión para habilitar lógica de bifurcación adicional:

label = if shirt_size == :s
          'small'
        elsif shirt_size == :m
          'medium'
        elsif shirt_size == :l
          'large'
        else
          'unknown size'
        end

Si ninguna de las condiciones en una cadena if / elsif es verdadera, y no hay else cláusula, entonces la expresión se evalúa como nula. Esto puede ser útil dentro de la interpolación de cadenas, ya que nil.to_s es la cadena vacía:

"user#{'s' if @users.size != 1}"