我试图理解递归是如何工作的,但还有一件事我不太明白:当递归函数本身内的递归调用之后有代码时,递归函数如何工作。请参阅下面的示例伪代码以帮助理解我的意思。我确切的问题是递归调用之后的代码将以什么顺序(即何时)执行。 机器会记录递归调用,在调用后执行剩余的代码(打印“完成”),然后返回并实际执行整个递归调用,还是机器会在到达该调用后立即执行递归调用行并仅在递归触底后执行最后一位代码(打印“完成”)? 何时以及多少次会打印“done”?
void recurse()
{
print "hello world";
for i = 0 up to 2
recurse();
print "done";
}
Run Code Online (Sandbox Code Playgroud) recursion ×1