首页 > 解决方案 > 从顶部重新启动循环

问题描述

我有以下内容:

text_counter = 0
MAXTEXT_COUNTER = 10
puts "hello, this will start"
loop do
  puts "hello"
  text_counter += 1
  sleep(2)
  if text_counter >= MAXTEXT_COUNTER
    break
  end
end
sleep(7200)
print "ended test"

一旦break发生,我怎样才能让它从头开始?

我现在想我可以将此循环嵌套until在条件为的循环中text_counter == 1000。这会中断,然后睡 2 小时,然后重新开始,直到达到 1000。

标签: ruby

解决方案


看起来你需要一个循环中的循环,你重复一次 N 次,其他 M 次:

MAXTEXT_COUNTER = 10

puts "hello, this will start"

loop do
  MAXTEXT_COUNTER.times do
    puts "hello"
    sleep(2)
  end

  print "ended test"
  sleep(7200)
end

外环是永久的。内部的运行一定次数并停止使用该times方法。


推荐阅读