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
............................