Ruby - 每第n次迭代

时间:2011-12-29 13:30:43

标签: ruby

如何使用类似的东西在

之类的东西中每隔一次迭代打印“Hello”
50.times do
  # every nth say hello
end

2 个答案:

答案 0 :(得分:10)

(0..10).step(2) do |it| 
  puts it
end

输出:

0
2
4
6
8
10

答案 1 :(得分:10)

我认为times不适合这种情况。但你可以在范围内迭代:

(1..50).each do |i|
  # print hello if number of iteration is multiple of five
  puts 'Hello' if i % 5 == 0
  # do other stuff
end

已更新(感谢 d11wtq

事实证明,Integer#times也会为块产生迭代次数:

50.times do |i|
  # print hello if number of iteration is multiple of five
  puts 'Hello' if (i + 1) % 5 == 0
  # do other stuff
end

Numeration是从零开始的,所以我们在迭代次数上加1(你可以改用i % 5 == 4,但看起来不太明显)。