Ruby Condicionales

Ruby proporciona varias estructuras condicionales muy comunes. Aquí explicaremos todas las sentencias condicionales y los modificadores disponibles en Ruby.

Ruby if...elseSentencia

Sintaxis

if conditional [then] code... [elsif conditional [then] code...]... [else code...] end

ifLa expresión se utiliza para la ejecución condicional. El valorfalseyniles falso, todos los demás valores son verdaderos. Ten en cuenta que Ruby usa `elsif`, no `else if` ni `elif`.

Siconditionales verdadero, entonces se ejecutacode. Siconditionalno es verdadero, entonces se ejecuta el especificado en la cláusula elsecode。

Generalmente omitimos la palabra reservada `then`. Si deseas escribir una sentencia `if` completa en una línea, debes separar la condición y el bloque de código con `then`. Como se muestra a continuación:

if a == 4 then a = 7 end

Ejemplo

#!/usr/bin/ruby # -*- coding: UTF-8 -*- x=1 if x > 2 puts "x es mayor que 2" elsif x <= 2 and x!=0 puts "x es 1" else puts "No se puede determinar el valor de x" end

Pruébalo »

La salida del ejemplo anterior es:

x 是 1

Ruby ifModificador

Sintaxis

code if condition

El modificador `if` indica que la expresión a la izquierda de `if` se ejecuta solo cuando la condición a la derecha de `if` se cumple. Es decir, siconditionales verdadero, entonces se ejecutacode。

Ejemplo

#!/usr/bin/ruby $debug=1 print "debug\n" if $debug

Pruébalo »

La salida del ejemplo anterior es:

debug

Ruby unlessSentencia

Sintaxis

unless conditional [then] code [else code ] end

La sentencia `unless` actúa de manera opuesta a la sentencia `if`, es decir, siconditionales falso, entonces se ejecutacode. Siconditionales verdadero, entonces se ejecuta el especificado en la cláusula elsecode。

Ejemplo

#!/usr/bin/ruby # -*- coding: UTF-8 -*- x=1 unless x>2 puts "x es menor o igual que 2" else puts "x es mayor que 2" end

Pruébalo »

La salida del ejemplo anterior es:

x 小于或等于 2

Ruby unlessModificador

Sintaxis

code unless conditional

Siconditionales falso, entonces se ejecutacode。

Ejemplo

#!/usr/bin/ruby # -*- coding: UTF-8 -*- $var = 1 print "1 -- Esta línea se imprime\n" if $var print "2 -- Esta línea no se imprime\n" unless $var $var = false print "3 -- Esta línea se imprime\n" unless $var

Pruébalo »

La salida del ejemplo anterior es:

1 -- 这一行输出
3 -- 这一行输出

Ruby caseSentencia

Sintaxis

case expression [when expression [, expression ...] [then] code ]... [else code ] end

`case` primero evalúa unaexpressionrealiza la comparación y luego selecciona la rama según el resultado de la coincidencia.

Usa===el operador de comparaciónwhenel especificadoexpression, si coincide, entonces se ejecutawhenel contenido de la parte.

Generalmente omitimos la palabra reservada `then`. Si deseas escribir una sentencia `when` completa en una línea, debes separar la condición y el bloque de código con `then`. Como se muestra a continuación:

when a == 4 then a = 7 end

Por lo tanto:

case expr0 when expr1, expr2 stmt1 when expr3, expr4 stmt2 else stmt3 end

Básicamente es similar a:

_tmp = expr0 if expr1 === _tmp || expr2 === _tmp stmt1 elsif expr3 === _tmp || expr4 === _tmp stmt2 else stmt3 end

Ejemplo

#!/usr/bin/ruby # -*- coding: UTF-8 -*- $age = 5 case $age when 0 .. 2 puts "Bebé" when 3 .. 6 puts "Niño" when 7 .. 12 puts "child" when 13 .. 18 puts "Adolescente" else puts "De otras edades" end

Pruébalo »

La salida del ejemplo anterior es:

niño

Cuando se omite la parte de "expresión" de `case`, se evalúa la primera expresión cuya parte de condición `when` sea verdadera.

foo = false bar = true quu = false case when foo then puts 'foo is true' when bar then puts 'bar is true' when quu then puts 'quu is true' end #Muestra "bar is true"
Otras extensiones