English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Bucle de Ruby

Las bucles en Ruby se utilizan para ejecutar el mismo bloque de código varias veces. Este capítulo详细介绍Ruby todas las sentencias de bucle soportadas.

Ruby mientras instrucción

gramática

mientras la condición [hacer]
   Ejecutar una vez cada elemento
end

modificador

gramática

mientras la condición [:]
   Ejecutar una vez cada elemento
end

o Después de la instrucción ejecutar cuando sea verdadero Ejecutar una vez cada elemento.

en la sintaxis, 'hacer' o ':' pueden omitirse. Pero si se desea escribir una estructura 'mientras' en una sola línea, debe separarse la condición o el bloque de código con 'hacer' o ':'.

Ejemplo en línea

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
Ejecutar una vez antes de que se ejecute.
$i = 0 5
mientras $i < $num  hacer
   $num =
   puts("En la instrucción de bucle i = #$i") +$i1
end

El resultado de la salida del ejemplo anterior es:

end until $i > $num
En la instrucción de bucle, i = 0 1
En la instrucción de bucle, i = 0 2
En la instrucción de bucle, i = 0 3
En la instrucción de bucle, i = 0 4

Ruby mientras En la gramática, do se puede omitir. Pero si se desea escribir la expresión until en una línea, se debe separar la condición o el bloque de código con do.

gramática

código mientras la condición sea
modificador
begin 
  Ejecutar una vez cada elemento 
finalizar mientras la condición sea verdadera

o Después de la instrucción ejecutar cuando sea verdadero Ejecutar una vez cada elemento.

si mientras Es false, ejecutar rescue until begin El modificador sigue a unEjecutar una vez cada elemento o la cláusula ensure Después de la instrucción condicional

Ejemplo en línea

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
Ejecutar una vez antes de que se ejecute.
$i = 0 5
begin
   $num =
   puts("En la instrucción de bucle i = #$i") +$i1
finalizar mientras $i < $num

El resultado de la salida del ejemplo anterior es:

end until $i > $num
En la instrucción de bucle, i = 0 1
En la instrucción de bucle, i = 0 2
En la instrucción de bucle, i = 0 3
En la instrucción de bucle, i = 0 4

Ruby Cuando instrucción

gramática

hasta que la condición sea verdadera [hacer]
   Ejecutar una vez cada elemento
end

o Después de la instrucción 为假时,执行 Ejecutar una vez cada elemento.

语法中 do 可以省略不写。但若要在一行内写出 until 式,则必须以 do 隔开条件式或程式区块。

Ejemplo en línea

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
Ejecutar una vez antes de que se ejecute.
$i = 0 5
Es falso, ejecutar
   $num =
   puts("En la instrucción de bucle i = #$i") +$i1=
end

El resultado de la salida del ejemplo anterior es:

end until $i > $num
En la instrucción de bucle, i = 0 1
En la instrucción de bucle, i = 0 2
En la instrucción de bucle, i = 0 3
En la instrucción de bucle, i = 0 4
En la instrucción de bucle, i = 0 5

Ruby Cuando En la gramática, do se puede omitir. Pero si se desea escribir la expresión until en una línea, se debe separar la condición o el bloque de código con do.

gramática

until $i > $num do
modificador
begin
   Ejecutar una vez cada elemento
código until condicional

o Después de la instrucción end until condicional Ejecutar una vez cada elemento.

si Cuando Es false, ejecutar rescue until begin El modificador sigue a unEjecutar una vez cada elemento o la cláusula ensure Después de la instrucción condicional

Ejemplo en línea

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
Ejecutar una vez antes de que se ejecute.
$i = 0 5
begin
   $num =
   puts("En la instrucción de bucle i = #$i") +$i1=
;

El resultado de la salida del ejemplo anterior es:

end until $i > $num
En la instrucción de bucle, i = 0 1
En la instrucción de bucle, i = 0 2
En la instrucción de bucle, i = 0 3
En la instrucción de bucle, i = 0 4
En la instrucción de bucle, i = 0 5

Ruby En la instrucción de bucle, i = instrucción

gramática

for
   Ejecutar una vez cada elemento
end

for variable [, variable ...] in expression [do] Primero calcule la expresión para obtener un objeto, luego ejecute el expression Ejecutar una vez cada elemento.

Ejemplo en línea

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
for i in 0..5
   puts "El valor de la variable local es #{i}"
end

Aquí, ya hemos definido el rango 0..5. La instrucción for i in 0..5 Permite que el valor de i sea de 0 a 5Incluye 5).

El resultado de la salida del ejemplo anterior es:

el valor de la variable local es 0
El valor de la variable local es 1
El valor de la variable local es 2
El valor de la variable local es 3
El valor de la variable local es 4
El valor de la variable local es 5

for...in El bucle es prácticamente equivalente a:

(expression).each do |variable[, variable...]| código end

Sin embargo, el bucle for no crea un nuevo ámbito para las variables locales.

En la gramática, do se puede omitir. Pero si se desea escribir el bucle for en una línea, se debe separar la condición o el bloque de código con do.

Ejemplo en línea

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
(0..5).each do |i|
   puts "El valor de la variable local es #{i}"
end

El resultado de la salida del ejemplo anterior es:

el valor de la variable local es 0
El valor de la variable local es 1
El valor de la variable local es 2
El valor de la variable local es 3
El valor de la variable local es 4
El valor de la variable local es 5

Ruby break instrucción

gramática

break

Terminar el bucle más interno. Si se llama dentro de un bloque, se termina el método correspondiente (el método devuelve nil).

Ejemplo en línea

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
for i in 0..5
   if i > 2 entonces
      break
   end
   puts "El valor de la variable local es #{i}"
end

El resultado de la salida del ejemplo anterior es:

el valor de la variable local es 0
El valor de la variable local es 1
El valor de la variable local es 2

Ruby next instrucción

gramática

next

Saltar a la siguiente iteración del bucle. Si se llama dentro de un bloque, se termina la ejecución del bloque (yield La expresión devuelve nil).

Ejemplo en línea

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
for i in 0..5
   if i < 2 entonces
      next
   end
   puts "El valor de la variable local es #{i}"
end

El resultado de la salida del ejemplo anterior es:

El valor de la variable local es 2
El valor de la variable local es 3
El valor de la variable local es 4
El valor de la variable local es 5

Ruby redo instrucción

gramática

redo

Reiniciar la iteración actual del bucle más interno sin verificar la condición del bucle. Si se llama dentro de un bloque, se reinicia. yield o llamar.

Ejemplo en línea

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
for i in 0..5
   if i < 2 entonces
      puts "El valor de la variable local es #{i}"
      redo
   end
end

Esto producirá el siguiente resultado y entrará en un bucle infinito:

el valor de la variable local es 0
el valor de la variable local es 0
............................

Ruby retry instrucción

Nota:1.9y versiones posteriores no admiten el uso de retry en bucles.

gramática

retry

si retry Si appears in the rescue clause of the begin expression, it restarts from the beginning of the begin body.

begin
   do_something   # Excepción lanzada
rescue
   # Manejo de errores
   retry          # Volver a comenzar desde begin
end

Si retry aparece dentro de un bucle, un bloque o el cuerpo de una expresión for, se vuelve a comenzar la llamada iterativa. Los parámetros de la iteración se evaluarán nuevamente.

for i in 1..5
   retry if some_condition # Volver a comenzar desde i == 1 Comenzar
end

Ejemplo en línea

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
for i in 1..5
   retry if  i > 2
   puts "El valor de la variable local es #{i}"
end

Esto producirá el siguiente resultado y entrará en un bucle infinito:

El valor de la variable local es 1
El valor de la variable local es 2
El valor de la variable local es 1
El valor de la variable local es 2
El valor de la variable local es 1
El valor de la variable local es 2
............................