所以,我有一个 ruby 循环,我如何在其中每 50 次迭代打印一条消息,如下所示:
loop do
do something
break if something happend
puts "Message at every 50 iteration"
end
保留一个计数变量,每次它可以被 50 整除时做一些事情。
i = 0;
loop do
i += 1
if i % 50 == 0
puts "This prints every 50 iterations"
end
end
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
考虑到您的情况,c
我认为最干净的方法是使用while
循环(或unless
取决于条件):
while c do
i = (i) ? i + 1 : 1
puts "This prints every 50 iterations" if (i % 50 == 0)
end