再帰関数とは、関数の中でその関数自身を再び呼び出すようになっている関数。再帰の代わりにループで表現できる。
// 4の階乗とは4×3×2×1
// nの階乗はn(n-1)(n-2)…(1)
function 階乗(n) {
if (n > 0) {
return n * 階乗(n - 1) // 階乗(n-1)は「(n-1) * 階乗(n-2)」になり…
} else { // 再帰から抜ける条件: これがないと無限再帰
return 1
}
}
console.log(階乗(4)) // 24
// 再帰の代わりにループ
let n = 4
let 答え = 1
while (n > 0) {
答え = 答え * n
n--
}
console.log(答え) // 24