再帰呼び出しがらみでやらかしたミス

 今日、再帰呼び出しがらみでやらかしたイージーミスを書いてみます。

1.変数を変更する前に再帰している

 たとえばログを取りたいときなんかに

log[count] = i;
recurFunction(count);

 とかするんですが、間違えて

recurFunction(count);
log[count] = i;

としたりしました。当然、思った通りの動きはしてくれません。


2.for文の中でreturnを使っている

for(int i=0;i<count;i++){
  if(判定){
  return;
  }
  recurFunction();
}

 当然、continueを使うべきなのですが、再帰を中断するときにはreturnという頭があったため、このような書き方をしてしまいました。

 こうやって見ると、なんでこんな間違いするんだよ、と思うんですけど実際に手を動かしてるうちは意外と気づかないんですよね〜……