716

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

4

7 に答える 7

1019

はい、それはと呼ばれてい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 
于 2010-10-24T19:41:09.183 に答える
119

next

また、現在の反復redoをやり直すものを確認してください。

于 2010-10-24T19:41:59.123 に答える
98

Ian Purtonの答えをもう少し慣用的な方法で書く:

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

プリント:

  2
  3
  4
  5
于 2012-06-25T17:50:55.947 に答える
43

eachのようなforループとイテレータメソッドの内部で、rubymapのキーワードは、ループの次の反復にジャンプする効果があります( Cnextと同じ)。continue

ただし、実際には、現在のブロックから戻るだけです。したがって、反復とは関係がない場合でも、ブロックを取得する任意のメソッドで使用できます。

于 2010-10-24T19:40:36.397 に答える
32

Rubyには他に2つのループ/反復制御キーワードがあります:redoretryそれらの詳細とそれらの違いについては、RubyQuickTipsを参照してください

于 2010-10-24T23:09:51.423 に答える
9

と呼ばれると思います。

于 2010-10-24T19:40:56.647 に答える
1

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

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()

出力:nmber10を入力します

1 2 3 4 6 7 8 9 10

于 2019-07-29T08:20:46.953 に答える