我不确定为什么这不起作用。我想每1000或10,000次迭代做一些事情。假设我想使用puts
命令。我怎么能这样做?
(1..100000).each do |number|
i = i+1
if i%1000==0
puts "finished: #{i}"
end
end
答案 0 :(得分:7)
我知道你想使用modulo,但我想分享一下这个名为step
的方法,用于ruby中的范围你可以使用
(0..100000).step(1000) do |number|
puts number
end
答案 1 :(得分:5)
打开
if 1%1000==0
到
if i%1000==0
此外,您尚未声明或最初定义变量i
。你的意思是变量number
吗?若然,那么:
number= number + 1
if number % 1000 ..
清除问题:
声明:(1..10000).each do |number|
将从1到10000的范围内一次一个地取一个。
您可以使用number
括号内定义的| |
变量获取该值。通过每次迭代,它会增加一个。因此,您应该在每个块中处理的变量是number
而不是未定义的变量。
在ruby块和数组等网上有很多很好的教程,所以请查看它们(我正在讲的很酷的博客:http://ruby.bastardsbook.com/chapters/collections/)
希望这有帮助:)(还要查看其他两个答案,大拇指到jvnill,我每天都学到一些东西:))