在Ruby中相当于“ continue”


648

在C语言和许多其他语言中,有一个continue关键字可以在循环内部使用时跳转到循环的下一个迭代。continue在Ruby中,此关键字是否等效?


4
Continue不会“重启”循环,而是跳转到循环的下一个迭代。
Matt Crinklaw-Vogt

1
@mlaw:为了避免将来引起混乱,我对问题进行了相应的编辑。
Mark Szymanski 2010年

7
@dbr在此之后询问您找到的重复项。
Droogans

Answers:


933

是的,它叫做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 

13
这就是我记得的方式-Ruby尊重Perl(next)高于C(continue
Panic上校2012年



42

里面for循环和迭代方法,如eachmapnext红宝石关键字将有跳跃到循环的下一次迭代的影响(同continue在C)。

但是,它实际上所做的只是从当前块返回。因此,即使与迭代无关,您也可以将其与任何采用块的方法一起使用。


以及不错的重做声明
Sigurd



1

使用next,它将绕过该条件,其余代码将起作用。下面我提供了完整脚本并输出

class TestBreak
  puts " Enter the nmber"
  no= gets.to_i
  for i in 1..no
    if(i==5)
      next
    else 
      puts i
    end
  end
end

obj=TestBreak.new()

输出:输入nmber 10

1 2 3 4 6 7 8 9 10

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.