【发布时间】:2015-08-16 12:29:57
【问题描述】:
我有一个递归调用的函数:
void myFunction(int j, int N){
if(j == N)
return;
for(int i = j +1 ; i < N ; ++i){
myfunction(i);
}
}
我的问题是return 将停止完全递归(从第一个调用节点开始),但我希望它只停止最后一个节点。这怎么可能?
编辑:看来我的问题大家都看不懂,我们换个说法吧:(不要关注代码,只是递归函数的一个例子)
为什么return 语句会停止递归调用的整个过程?我希望它只停止最后一次通话。
【问题讨论】:
-
N 来自哪里?
-
你控制递归何时停止,所以调整你的终止条件!
-
你能详细说明
will stop the full recursion吗?这没有任何意义:返回实际上不会突破您的所有其他功能。递归能够在调用函数体中继续。 -
这个函数到底应该做什么?
-
提供可复制的完整代码,但不提供“示例代码”。另外,目前还不清楚你想要什么。