web-dev-qa-db-ja.com

Rubyの「継続」と同等

C言語や他の多くの言語では、ループ内で使用するとループの次の繰り返しにジャンプするcontinueキーワードがあります。 Rubyにこのcontinueキーワードに相当するものはありますか?

601
Mark Szymanski

はい、それは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 
867
Ian Purton

next

また、 current の繰り返しをやり直すredoを見てください。

104
Nick Moore

Ian Purtonの answer をもう少し慣用的な方法で書いてください。

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

プリント:

  2
  3
  4
  5
74
sberkley

eachmapのようなforループやイテレータメソッドの中には、Rubyのnextキーワードがあります(Cのcontinueと同じ)。

しかし実際には、現在のブロックから戻るだけです。つまり、繰り返しとは無関係であっても、ブロックを使用する任意のメソッドで使用できます。

39
sepp2k

Rubyにはredoretryという2つのループ/繰り返し制御キーワードがあります。 Ruby QuickTipsで、それらについて、そしてそれらの違いについてもっと読んでください

28
19WAS85

next と呼ばれると思います。

7
idursun

次に使用すると、その条件をバイパスし、残りのコードが機能します。以下に、完全なスクリプトと出力を提供しました

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

1
Rakesh Kumar