ホームページ >Java >&#&チュートリアル >Java 関数の再帰呼び出しと末尾再帰呼び出しの違いは何ですか?
末尾の再帰呼び出しは新しい関数スタック フレームを作成しません。再帰呼び出しはスタック領域の枯渇を避けるために最適化できます。実際のケースでは、元の再帰呼び出しを末尾再帰呼び出しに変換する補助関数を導入することで階乗計算関数を最適化しました。
#Java 関数の再帰呼び出しと末尾再帰呼び出し
#再帰呼び出し
関数はそれ自体の中でそれ自体を呼び出します。関数は、最後の操作として関数自体の中でそれ自体を呼び出します。
階乗を計算する関数は、再帰呼び出しの例として使用できます。それを末尾再帰呼び出しに変換すると、補助関数を導入できます。
public static int factorial(int n) { if (n == 0) { return 1; } return n * factorial(n - 1); // 递归调用 }
末尾再帰呼び出しでは、
result変数に現在の階乗値が格納され、関数は次の時点で再帰的に呼び出されます。新しい関数スタック フレームの作成を避けるために、それ自体の終わりを指定します。
#結論
以上がJava 関数の再帰呼び出しと末尾再帰呼び出しの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。