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