🦴
JavaScriptの再帰関数とは?
どんなものか?
JavaScriptの再帰関数は、自身の定義の中で自身を呼び出す関数のことです。再帰的なアプローチを使用することで、問題をより小さな部分に分割し、それらの部分を組み合わせて問題全体を解決することができます。再帰関数は特に、再帰的に定義されたデータ構造や問題に対して有用です。
再帰関数の一般的な構造は以下のようになります:
function 関数名(引数) {
// ベースケース(再帰の終了条件)
if (ベースケース) {
// 結果を返すなど、再帰の終了時の処理を行う
} else {
// 再帰呼び出し
関数名(新たな引数);
// 必要に応じて結果を処理する
}
}
以下に、再帰関数の例として階乗(factorial)を計算する関数を示します:
function factorial(n) {
// ベースケース(nが0または1の場合)
if (n === 0 || n === 1) {
return 1;
} else {
// 再帰呼び出し
return n * factorial(n - 1);
}
}
let result = factorial(5);
console.log(result); // 結果は 120
この例では、factorial関数は自身を再帰的に呼び出しており、nの階乗を計算しています。ベースケースでは、nが0または1の場合に1を返して再帰を終了させています。それ以外の場合は、nに対して再帰的にfactorial関数を呼び出し、結果にnを乗算しています。
再帰関数を使用する際には、無限ループに陥らないように、適切なベースケースと再帰呼び出しの条件を設定することが重要です。また、再帰関数は適切に最適化されていない場合、大きな入力に対してスタックオーバーフロー(Stack Overflow)のエラーが発生する可能性があるため、注意が必要です。
まとめ
再帰関数は、定義した関数の中で、同じ関数を呼び出して実行するものでした。計算をするロジックだと無限ループが起きるリスクがあるものなのだということがわかりました。
Discussion