2010-10-24 43 views
522

在C語言和許多其他語言中,有一個continue關鍵字,當在循環內部使用時,跳轉到循環的下一次迭代。 Ruby中是否有這個continue關鍵字的等價物?紅寶石中「繼續」的等效代碼

+3

繼續不「重新啓動」的循環,但跳到循環的下一次迭代。 – 2010-10-24 19:54:34

+1

@mlaw:我相應地編輯了我的問題,以防止未來的混淆。 – 2010-10-24 21:19:57

+3

[在Ruby中,如何跳過.each循環中的循環,類似於'continue'](http://stackoverflow.com/questions/4230322/in-ruby-how-do-i-skip - 循環在每個循環 - 類似於繼續) – dbr 2011-12-31 09:32:54

回答

772

是的,它叫next

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

此輸出以下:

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

這就是我記得的 - Ruby尊重C('continue')上方的Perl('next') – 2012-07-05 18:43:53

36

內部for循環和迭代方法,如eachmap在紅寶石next關鍵字將有跳躍到環(C相同continue)的下一次迭代的效果。

但實際上它只是從當前塊返回。因此,您可以使用任何採用塊的方法 - 即使它與迭代無關。

+0

以及很好的重做聲明 – Sigurd 2010-10-24 19:41:42

+5

+22解釋'next'的語義含義 – Jack 2015-04-20 22:03:54

89

next

也看redo其重新進行當前迭代。

+33

...原因ruby是rad像那樣。 – 2013-02-08 22:36:31