Recursive Function

민겸·2022년 10월 25일
0

JavaScript

목록 보기
17/20
post-thumbnail

재귀함수는 다음과 같이 자기 자신을 호출하는 함수이다.

function recursive(word){
  	console.log(word);
 	return recursive("hi"); 
}

이렇게 선언한 뒤, 실행시키면 자기 자신을 끝도 없이 호출하기 때문에 Stack Overflow Error를 만나게 된다.

그래서 재귀함수는 자기 자신을 통제해줄 exit condition이 반드시 필요하다.

재귀함수를 설명하는 예시로 가장 많이 보이는 것이 바로 팩토리얼 구하기 이다.

팩토리얼이란, N이 있을 때 1부터 N까지 순서대로 1씩 늘려가며 곱한 값이라고 정의할 수 있다.

코드로 나타내보자.

function Factorial(n){
	if(n === 1) return 1;
  	return n * Factorial(n-1);
}

위와 같은 팩토리얼 구하기를 보면 알 수 있듯이, 조건문을 사용해서 exit condition을 만들어 무한 호출을 방지한다.

보통 재귀함수로 구현할 수 있는 기능은 반복문을 사용해서 구현할 수 있기 마련인데, 왜 재귀함수를 사용할까?

재귀함수를 사용했을 때 가독성이 훨씬 더 좋아지는 경우가 있기 때문이다.

위의 팩토리얼을 반복문을 사용해서 나타내보자.

function Factorial(n){
let sum = 1;
    for(let i = 1; i <= n; i++){
	  sum = sum * i;
    }
return sum;
}

보다시피, 코드가 더 길어져 가독성이 떨어진데다가 변수 또한 추가로 선언해서 사용해야 한다.

profile
기술부채상환중...

0개의 댓글