본문 바로가기

■ 프로그래밍/JavaScript

재귀(Recursion)

재귀(Recursion)

재귀란 함수가 자기 자신을 호출하는 것이다. 

 

const countdown = n => {
  console.log(n);
  if (n === 0) return; // n이 0이라면 함수 종료
  countdown(n-1);      // n-1을 계속 실행
}

countdown(10);

// output: 
// 10
// 9
// 8
// 7
// 6
// 5
// 4
// 3
// 2
// 1

함수 안에 또 자기 자신을 호출해서 n값에서 -1된 값을 계속 return하고 있다. 

여기서 가장 중요한 것은 종료 조건이 있다는 것이다. 

if ( 조건 ) { return }

만약 종료 조건이 없다면, 재귀는 계속 해당 함수를 호출하여 컴퓨터가 과부하게 걸리거나 원치않은 값까지 return 할 수 있다. 

 

예제

재귀는 팩토리얼(factorial)을 구할 때 사용할 수 있다.

팩토리얼이란 1에서부터 n까지의 정수를 모두 곱한것을 말한다. 

 2! = 1 * 2

 5! = 1 * 2 * 3 * 4 * 5

 

만약 5!를 구하고 싶다면 아래와 같이 작성하면 된다.

const factorial = n => {
  console.log(n)
  if ( n === 0 ) {
    return 1
  } else {
    return n * factorial(n-1)
  }
}

factorial(5);

 

 

 

 

 

'■ 프로그래밍 > JavaScript' 카테고리의 다른 글

배열에서 중복 제거하기(Set)  (0) 2020.05.11
Object (3) - 접근법  (0) 2020.05.05
재귀(Recursion)  (0) 2020.04.25
Temporal Dead Zone  (0) 2020.04.16
Object (2) - 중첩객체 접근  (0) 2020.03.26
Object (1) - 접근, 할당  (0) 2020.03.25