1

我不确定为什么这不起作用。我想每 1000 或 10,000 次迭代做一些事情。可以说我想使用该puts命令。我怎样才能做到这一点?

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

2 回答 2

7

我知道您想使用模数,但我想分享一下,step在 ruby​​ 中有一种方法称为范围,您可以使用它

(0..100000).step(1000) do |number|
  puts number
end
于 2013-03-13T00:50:54.697 回答
5

转动

 if 1%1000==0

 if i%1000==0

此外,您还没有声明或最初定义 variable i。你是说变量number吗?如果是这样,那么做:

number= number + 1
if number % 1000 ..

清除事情:

该声明:

(1..10000).each do |number|

将从 1 到 10000 的范围内一次取每个数字一个。您可以使用您在括号内number定义的变量来获取该值。| |通过每次迭代,它将增加一个。因此,您应该在每个块中处理的变量是number而不是未定义的变量。网上有很多关于红宝石块和数组等的好教程,所以请查看它们(我正在阅读的很酷的博客:http ://ruby.bastardsbook.com/chapters/collections/ )希望这会有所帮助:) (还请查看其他两个答案,对 jvnill 大赞,我每天都学到一些东西:))

于 2013-03-13T00:38:32.017 回答