Ruby中的模数每10,000个打印一次

时间:2013-03-13 00:37:10

标签: ruby

我不确定为什么这不起作用。我想每1000或10,000次迭代做一些事情。假设我想使用puts命令。我怎么能这样做?

(1..100000).each do |number|
  i = i+1
  if i%1000==0
    puts "finished: #{i}"
  end
end

2 个答案:

答案 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,我每天都学到一些东西:))