はい、私は文言が理解するのは難しいと知っていますが、これはバグの多いものです。最近のプロジェクトでは、私は再発する機能を持っています。再帰を止めるような条件が数多くあります。どちらの状況がオプションか? (I.E.最高性能または最も簡単なメンテナンス)。条件付きで関数を実行する最善の方法は?
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);
}
2)if文
void myRecursingFunction (int i, int j){
if (
!conditionThatWouldStopRecursing &&
!anotherConditionThatWouldStopRecursing &&
!thirdConditionThatWouldStopRecursing
){
doSomeCodeHere();
myRecursingFunction(i + 1, j);
myRecursingFunction(i, j + 1);
}
}
3で全体を包んで)あなたはそれを間違ったのnoobをやっている、何もまともなアルゴリズムは、これまで再帰を使用しないだろう。
最初の例は、2番目の例で||を使用するのと同じです。したがって、2つの例は同じことをしません。 –
@Lasse - ハァッ?それがあなたを混乱させるなら、私は条件文も否定します。 – MiffTheFox