【发布时间】:2018-07-26 21:53:12
【问题描述】:
我是递归新手,一直在研究非尾递归。我相信这是递归调用不在函数末尾的地方。我正在查看一些递归代码示例,我对递归调用之后的代码何时以及如何执行感到困惑。更具体地说,当程序的当前行到达递归调用时,是在再次真正执行整个函数之前执行的最后一段代码,还是当前执行行立即跳回函数的开头,仅在整个递归触底后执行剩余的代码?谁能解释一下这对我有什么作用?
【问题讨论】:
-
用你的话来说:当前行跳回到开头
-
对不起 - 我不明白 - 这是非尾递归的情况吗?
-
任何递归都会发生这种情况
-
好的...所以函数内递归调用后的最后一段代码只有在所有递归触底后才执行?
-
是的,这与您调用的任何其他函数完全相同(当然不是异步的情况)
标签: recursion