では「再帰の動き」を図解で追ってみましょう。ここでは分かりやすい例として factorial(4) を使います。
コード
function factorial(n) {
if (n === 0) return 1; // 終了条件
return n * factorial(n - 1); // 再帰ステップ
}
console.log(factorial(4));
JavaScript実行の流れ(潜っていく)
factorial(4)
→4 * factorial(3)を計算するためにfactorial(3)を呼ぶfactorial(3)
→3 * factorial(2)を計算するためにfactorial(2)を呼ぶfactorial(2)
→2 * factorial(1)を計算するためにfactorial(1)を呼ぶfactorial(1)
→1 * factorial(0)を計算するためにfactorial(0)を呼ぶfactorial(0)
→ 終了条件に当たり、1を返す
戻りながら計算する流れ
factorial(0)= 1factorial(1)=1 * 1= 1factorial(2)=2 * 1= 2factorial(3)=3 * 2= 6factorial(4)=4 * 6= 24
図でイメージ
factorial(4)
→ 4 * factorial(3)
↓
3 * factorial(2)
↓
2 * factorial(1)
↓
1 * factorial(0)
↓
1 (終了条件)
戻りながら計算すると:
factorial(0) = 1
factorial(1) = 1 * 1 = 1
factorial(2) = 2 * 1 = 2
factorial(3) = 3 * 2 = 6
factorial(4) = 4 * 6 = 24
ポイント
- 再帰は「潜っていく」ときと「戻ってくる」ときの2段階がある。
- 潜るときは「まだ答えが出ないから次へ進む」。
- 戻るときに「答えが積み上がって完成する」。


