1

だから、私はルビーループを持っています。次のように、50回の反復ごとにメッセージを出力するにはどうすればよいですか:

loop do
  do something
  break if something happend
  puts "Message at every 50 iteration"
end
4

3 に答える 3

6

カウント変数を保持し、50 で割り切れるたびに何かを実行します。

i = 0;

loop do
  i += 1

  if i % 50 == 0
    puts "This prints every 50 iterations"
  end
end
于 2013-04-25T00:48:13.447 に答える
4

Donald Knuth (おそらく Ruby にはいない) は、カウントアップするインデックスではなく、カウントダウンするインデックスを使用します。これにより、チェックが容易になります。また、sigmavirus24 が指摘するように、整数オーバーフローの問題も回避します。

i = 50
loop do
  # do something
  break if something happend # (as in original)
  i -= 1
  next unless i.zero?
  i = 50
  puts "Message at every 50 iteration"
end
于 2013-04-25T05:34:29.013 に答える