转到行或重启脚本

时间:2015-07-18 09:08:13

标签: ruby

我正在编写一个计算器。用户完成后,我希望用户选择退出或输入另一笔金额。我如何让它询问并接受他们想做什么,并根据结果退出或重启?这是我的current script

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是将程序包装在函数中。然后你可以做递归。

Ruby'喜欢'Psuedo代码:

 def calculator:
       // your calculator procedure 
  end

  def recur:
        calculator()
        recur() 
  end 

   recur() 

大多数现代语言没有goto指令。因此,您需要使用函数来设计流程,而不是goto

在经典BASIC之类的语言中,您可以使用以下内容:

calculator_label:
    // your procedure here
    goto calculator_label

在Ruby和许多其他语言中,这是不可用的。所以你要做的就是将代码包装在一个函数中,然后在函数的最后再次调用函数。这称为“尾递归”。就像使用goto一样,您可以最终处于无限循环中。或者更糟糕的是,像JavaScript这样的语言不会通过尾递归正确地进行垃圾收集,因此内存不会像预期的那样被释放。这称为内存泄漏。

所以上面的goto示例变为:

def calculator:
   // your procedural code here
   calculator()
end

calculator()