是的,我知道这个措辞很难理解,但这让我很烦恼.在最近的一个项目中,我有一个recurses函数,并且有许多条件会导致它停止递归(目前为三).哪种情况可选?(IE最佳性能或最简单的维护).
1)有条件退货:
void myRecursingFunction (int i, int j){
if (conditionThatWouldStopRecursing) return;
if (anotherConditionThatWouldStopRecursing) return;
if (thirdConditionThatWouldStopRecursing) return;
doSomeCodeHere();
myRecursingFunction(i + 1, j);
myRecursingFunction(i, j + 1);
}
Run Code Online (Sandbox Code Playgroud)
2)用if语句包装整个东西
void myRecursingFunction (int i, int j){
if (
!conditionThatWouldStopRecursing &&
!anotherConditionThatWouldStopRecursing &&
!thirdConditionThatWouldStopRecursing
){
doSomeCodeHere();
myRecursingFunction(i + 1, j);
myRecursingFunction(i, j + 1);
}
}
Run Code Online (Sandbox Code Playgroud)
3)你做错了noob,没有理智的算法会使用递归.
| 归档时间: |
|
| 查看次数: |
199 次 |
| 最近记录: |