🦴

JavaScriptの再帰関数とは?

2023/06/21に公開

どんなものか?

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)のエラーが発生する可能性があるため、注意が必要です。

まとめ

再帰関数は、定義した関数の中で、同じ関数を呼び出して実行するものでした。計算をするロジックだと無限ループが起きるリスクがあるものなのだということがわかりました。

Jboy王国メディア

Discussion