Latest web development tutorials

ciclo de rubí

Rubí en el bucle para realizar el mismo bloque de código de veces varios. En este apartado se detallará todos los lazos de soporte Ruby.

declaraciónde rubí,mientras

gramática

while conditional [do]
   code
end

o

<pre>
while conditional [:]
   code
end

Cuando lacondiciónes verdadera, se ejecuta elcódigo.

O hacer sintaxis: puede omitirse. Pero para escribir una fórmula, mientras que en la línea, o que debe hacer: expresión condicional o aparte del programa bloques.

Ejemplos

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$i = 0
$num = 5

while $i < $num  do
   puts("在循环语句中 i = #$i" )
   $i +=1
end

La salida del ejemplo anterior es:

在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4

Rubímientras modificador

gramática

code while condition

或者

begin 
  code 
end while conditional

Cuando lacondiciónes verdadera, se ejecuta elcódigo.

Si, mientras queen un modificador sinrescateo tempranoempiezancomunicado asegurarla cláusula, elcódigo se ejecutará una vez antes de la sentenciacondicional.

Ejemplos

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$i = 0
$num = 5
begin
   puts("在循环语句中 i = #$i" )
   $i +=1
end while $i < $num

La salida del ejemplo anterior es:

在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4

Rubíhasta declaraciones

until conditional [do]
   code
end

Cuando lacondiciónes falsa, ejecutarcódigo.

do sintaxis puede ser omitido. Pero a escribir hasta que la fórmula, debe hacer la expresión o de programa condicionales bloques separados en la fila.

Ejemplos

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$i = 0
$num = 5

until $i > $num  do
   puts("在循环语句中 i = #$i" )
   $i +=1;
end

La salida del ejemplo anterior es:

在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4
在循环语句中 i = 5

Rubíhasta modificadores

gramática

code until conditional

或者

begin
   code
end until conditional

Cuando lacondiciónes falsa, ejecutarcódigo.

Sihastaahora modificador en un comunicado que hayrescateo tempranoempiezangarantizarcláusula, elcódigo se ejecutará una vez antes de la sentenciacondicional.

Ejemplos

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

$i = 0
$num = 5
begin
   puts("在循环语句中 i = #$i" )
   $i +=1;
end until $i > $num

La salida del ejemplo anterior es:

在循环语句中 i = 0
在循环语句中 i = 1
在循环语句中 i = 2
在循环语句中 i = 3
在循环语句中 i = 4
在循环语句中 i = 5

Rubípara la declaración

gramática

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

la expresión primer cálculo para obtener un objeto, entonces laexpresiónpara cada elemento por separado uncódigo.

Ejemplos

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 0..5
   puts "局部变量的值为 #{i}"
end

Aquí, hemos definido el rango 0..5. Declaración de i en 0..5 permita que el valor de i de 0 a 5 (con 5).

La salida del ejemplo anterior es:

局部变量的值为 0
局部变量的值为 1
局部变量的值为 2
局部变量的值为 3
局部变量的值为 4
局部变量的值为 5

buclefor ... ines casi exactamente equivalente a:

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

Sin embargo, para el lazo no se crea un nuevo ámbito para las variables locales.

do sintaxis puede ser omitido. Pero para escribir la fórmula en una fila, entonces debe hacer aparte de expresión condicional o programa bloquea.

Ejemplos

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

(0..5).each do |i|
   puts "局部变量的值为 #{i}"
end

La salida del ejemplo anterior es:

局部变量的值为 0
局部变量的值为 1
局部变量的值为 2
局部变量的值为 3
局部变量的值为 4
局部变量的值为 5

sentencia breakRubí

gramática

break

La terminación del bucle más interior. Si ha invocado dentro del bloque, el bloque está relacionado con la terminación (el método devuelve nil).

Ejemplos

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 0..5
   if i > 2 then
      break
   end
   puts "局部变量的值为 #{i}"
end

La salida del ejemplo anterior es:

局部变量的值为 0
局部变量的值为 1
局部变量的值为 2

Rubípróximo estado de cuenta

gramática

next

Saltar a la siguiente iteración del bucle. Si se llama en el bloque termina el bloque de ejecución(rendimientoexpresión devuelve nil).

Ejemplos

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 0..5
   if i < 2 then
      next
   end
   puts "局部变量的值为 #{i}"
end

La salida del ejemplo anterior es:

局部变量的值为 2
局部变量的值为 3
局部变量的值为 4
局部变量的值为 5

declaración de rehacerRubí

gramática

redo

Reinicio de la iteración del bucle más interno, la condición de bucle no está marcada. Si se llama en el bloque, a continuación, reinicieel rendimientoolallamada.

Ejemplos

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 0..5
   if i < 2 then
      puts "局部变量的值为 #{i}"
      redo
   end
end

Esto produce los siguientes resultados, y entrará en un bucle infinito:

局部变量的值为 0
局部变量的值为 0
............................

declaración de reintentoRubí

NOTA: 1.9 y versiones posteriores no apoyan el uso de reintento en un bucle.

gramática

retry

Si elreintentoaparece en la expresión comenzar cláusula de rescate, desde el comienzo del cuerpo comienzan a volver a empezar.

begin
   do_something   # 抛出的异常
rescue
   # 处理错误
   retry          # 重新从 begin 开始
end

Si el reintento aparece en la iteración, o para la expresión dentro del cuerpo, reitera las llamadas dentro del bloque. parámetros de iteración reevaluados.

for i in 1..5
   retry if some_condition # 重新从 i == 1 开始
end

Ejemplos

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

for i in 1..5
   retry if  i > 2
   puts "局部变量的值为 #{i}"
end

Esto produce los siguientes resultados, y entrará en un bucle infinito:

局部变量的值为 1
局部变量的值为 2
局部变量的值为 1
局部变量的值为 2
局部变量的值为 1
局部变量的值为 2
............................