创建无限循环

时间:2014-11-26 01:39:13

标签: ruby

我试图创建一个无限循环,其中一段代码将永远执行。

我发现的所有循环文档都警告不要创建一个无限循环,但没有工作示例。

如果我有一段代码:

{ puts "foo"  
  puts "bar"  
  sleep 300 }

我将如何永远地运行这个区块?

4 个答案:

答案 0 :(得分:26)

loop do
  puts 'foo'  
  puts 'bar'  
  sleep 300
end

答案 1 :(得分:14)

以下是使用块的无限循环的一些示例。

循环

loop do
  puts "foo"  
  puts "bar"  
  sleep 300
end

虽然

while true
  puts "foo"  
  puts "bar"  
  sleep 300
end

直到

until false
  puts "foo"  
  puts "bar"  
  sleep 300
end

LAMBDA

-> { puts "foo" ; puts "bar" ; sleep 300}.call until false

lambda也有一些变体,使用非stabby lambda语法。我们也可以使用Proc。

BEGIN..END

begin
  puts "foo"  
  puts "bar"
  sleep 300
end while false

答案 2 :(得分:1)

除了输入循环外,我尝试了所有其他操作,直到获得有效输入为止,它只能作为无限循环:

shared_ptr

答案 3 :(得分:-3)

1) while循环

While 1==1 # As the condition 1 is equal to 1 is true, it always runs.
    puts "foo"  
    puts "bar"  
    sleep 300
   end

2)递归:

    def infiniteLoop # Using recursion concept
      puts "foo"
      puts "bar"
      sleep 300
      infiniteLoop #Calling this method again    
    end
编辑:我认为这会有效,但正如Gabriel所说,我们会得到SystemStackError。

3)循环

   loop do
    puts "foo"
    ....
   end

4)使用除非

unless 1 == 2  # Unless 1 is equal to 2 , it keeps running
 puts "foo"
 ...
end