2010-10-24 16 views
522

En C y en muchos otros idiomas, existe una palabra clave continue que, cuando se usa dentro de un bucle, salta a la siguiente iteración del bucle. ¿Hay algún equivalente de esta palabra clave continue en Ruby?Equivalente a "continuar" en Ruby

+3

Continuar, no se "Reiniciar" los bucles, pero salta a la siguiente iteración del bucle. –

+1

@mlaw: edité mi pregunta en consecuencia para evitar confusiones futuras. –

+3

posible duplicado de [En Ruby, ¿cómo puedo omitir un ciclo en un .each loop, similar a 'continuar'] (http://stackoverflow.com/questions/4230322/in-ruby-how-do-i-skip -a-loop-in-a-each-loop-similiar-to-continue) – dbr

Respuesta

772

Sí, se llama next.

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

Esto da 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 
=> 0..5 
+8

Así es como recuerdo - Ruby respeta a Perl (' siguiente') por encima de C ('continuar') –

36

interior por bucles y métodos iterador como each y map la palabra clave next en rubí tendrá el efecto de saltar a la siguiente iteración del bucle (igual que continue en C).

Sin embargo, lo que realmente hace es solo regresar del bloque actual. Entonces puede usarlo con cualquier método que tome un bloque, incluso si no tiene nada que ver con la iteración.

+0

, así como una buena declaración de rehacer – Sigurd

+5

+22 para explicar el significado semántico de 'siguiente' – Jack

89

next

También, busque en la que rehace redola actual iteración.

+33

... porque el rubí es rad como eso. –

65

Escribir Ian Purton's answer de una manera un poco más idiomática:

(1..5).each do |x| 
    next if x < 2 
    puts x 
end 

Prints:

2 
    3 
    4 
    5 
Cuestiones relacionadas