Ruby - Bucles

Los bucles en Ruby se utilizan para ejecutar el mismo bloque de código un número específico de veces. Este capítulo detalla todas las declaraciones de bucle admitidas por Ruby.

Ruby while Statement

Sintaxis

while conditional [do]
   code
end

Ejecuta código mientras condicional es verdadero. Un tiempo de bucle condicional se separa de código por la palabra reservada hacer, una nueva línea, la barra invertida \, o un punto y coma;.

Ejemplo

#!/usr/bin/ruby

$i = 0
$num = 5

while $i < $num  do
   puts("Inside the loop i = #$i" )
   $i +=1
end

Esto producirá el siguiente resultado:

Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4

Ruby while modificador

Sintaxis

code while condition

OR

begin 
  code 
end while conditional

Ejecuta código mientras condicional es verdadero.

Si un modificador while sigue a una instrucción begin sin cláusulas de rescate o aseguramiento, el código se ejecuta una vez antes de evaluar el condicional.

Ejemplo

#!/usr/bin/ruby

$i = 0
$num = 5
begin
   puts("Inside the loop i = #$i" )
   $i +=1
end while $i < $num

Esto producirá el siguiente resultado:

Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4

Ruby hasta Statement

until conditional [do]
   code
end

Ejecuta código mientras condicional es falso. Un condicional de la instrucción hasta se separa del código por la palabra reservada do , una nueva línea o un punto y coma.

Ejemplo

#!/usr/bin/ruby

$i = 0
$num = 5

until $i > $num  do
   puts("Inside the loop i = #$i" )
   $i +=1;
end

Esto producirá el siguiente resultado:

Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Inside the loop i = 5

Ruby hasta modificador

Sintaxis

code until conditional

OR

begin
   code
end until conditional

Ejecuta código mientras condicional es falso.

Si un modificador hasta sigue a una instrucción begin sin cláusulas de rescate o aseguramiento, el código se ejecuta una vez antes de evaluar el condicional .

Ejemplo

#!/usr/bin/ruby

$i = 0
$num = 5
begin
   puts("Inside the loop i = #$i" )
   $i +=1;
end until $i > $num

Esto producirá el siguiente resultado:

Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Inside the loop i = 5

Ruby para declaración

Sintaxis

for variable [, variable ...] in expression [do]
   code
end

Ejecuta el código una vez para cada elemento de la expresión .

Ejemplo

#!/usr/bin/ruby

for i in 0..5
   puts "Value of local variable is #{i}"
end

Aquí, hemos definido el rango 0..5. La declaración para i en 0..5 permitirá que i tome valores en el rango de 0 a 5 (incluido 5). Esto producirá el siguiente resultado:

Value of local variable is 0
Value of local variable is 1
Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5

Un bucle for ... in es casi exactamente equivalente a lo siguiente:

(expression).each do |variable[, variable...]| code end

excepto que un bucle for no crea un nuevo alcance para las variables locales. Un para de bucle de expresión se separa de código por la palabra reservada hacer, una nueva línea, o un punto y coma.

Ejemplo

#!/usr/bin/ruby

(0..5).each do |i|
   puts "Value of local variable is #{i}"
end

Esto producirá el siguiente resultado:

Value of local variable is 0
Value of local variable is 1
Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5

Declaración de ruptura de rubí

Sintaxis

break

Termina el bucle más interno. Termina un método con un bloque asociado si se llama dentro del bloque (con el método devolviendo nulo).

Ejemplo

#!/usr/bin/ruby

for i in 0..5
   if i > 2 then
      break
   end
   puts "Value of local variable is #{i}"
end

Esto producirá el siguiente resultado:

Value of local variable is 0
Value of local variable is 1
Value of local variable is 2

Siguiente declaración de Ruby

Sintaxis

next

Salta a la siguiente iteración del ciclo más interno. Termina la ejecución de un bloque si se llama dentro de un bloque (con rendimiento o devolución de llamada nulo).

Ejemplo

#!/usr/bin/ruby

for i in 0..5
   if i < 2 then
      next
   end
   puts "Value of local variable is #{i}"
end

Esto producirá el siguiente resultado:

Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5

Declaración de rehacer de Ruby

Sintaxis

redo

Reinicia esta iteración del bucle más interno, sin verificar la condición del bucle. Reinicia el rendimiento o la llamada si se llama dentro de un bloque.

Ejemplo

#!/usr/bin/ruby

for i in 0..5
   if i < 2 then
      puts "Value of local variable is #{i}"
      redo
   end
end

Esto producirá el siguiente resultado e irá en un bucle infinito:

Value of local variable is 0
Value of local variable is 0
............................

Declaración de reintento de Ruby

Sintaxis

retry

Si reintentar aparece en la cláusula de rescate de la expresión begin, reinicie desde el principio del cuerpo begin.

begin
   do_something # exception raised
rescue
   # handles error
   retry  # restart from beginning
end

Si aparece reintento en el iterador, el bloque o el cuerpo de la expresión for , reinicia la invocación de la llamada al iterador. Los argumentos del iterador se vuelven a evaluar.

for i in 1..5
   retry if some_condition # restart from i == 1
end

Ejemplo

#!/usr/bin/ruby
for i in 0..5
   retry if i > 2
puts "Value of local variable is #{i}"
end

Esto producirá el siguiente resultado e irá en un bucle infinito:

Value of local variable is 1
Value of local variable is 2
Value of local variable is 1
Value of local variable is 2
Value of local variable is 1
Value of local variable is 2
............................