再帰関数の基本

再帰関数とは、関数の中でその関数自身を再び呼び出すようになっている関数。再帰の代わりにループで表現できる。

// 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