⛳
再帰関数の挙動
概要
再帰関数の挙動について
以下関連記事
再帰関数実行時の流れ
以下の再帰関数
sum(2)、つまり1から2までの総和を求める場合を例に説明。
test.js
// 1 から n までの総和を計算する関数sum
function sum(n){
// ループを終了させるベースケース
if (n <= 0) {
return 0;
}
return sum(n-1) + n;
}
①push
2 + sum(1)にて、
加算演算子「+」よりも、関数の呼び出し「sum(1)」の方が優先順位が高いため、
sum(1)が先に実行される
↓
1 + sum(0)にて、
加算演算子「+」よりも、関数の呼び出し「sum(0)」の方が優先順位が高いため、
sum(0)が先に実行される
②pop
sum(0)が実行され、
sum(0)の箇所が戻り値「0」で上書きされる
↓
関数の実行が終わったら、
後回しにされていた演算子が実行される
Discussion