본문 바로가기
Development (국비 복습 )/JavaScript

재귀함수(recursive call)이란?

by Puddingforever 2023. 2. 26.

일단 재귀(rescursive)란 원래 자리로 되돌아가거나 되돌아 온다는 뜻이다.

따라서 자기 자신에게 되돌아 온다는 뜻을 내포하고 있다.

 

재귀함수의 구조

function recurse(){
//,,,
	recurse();
//...
}

재귀함수는 반드시 함수를 멈추는 조건을 가지고 있어야한다. 그렇지 않으면 무한반복된다.

 function recurse(){
 	if(condition){
    	//stop calling inself
    }else{
    	recurse();
    }
 }

 

 

간단한 재귀함수(Recursive call) 예제

3부터 1까지 카운트다운 해주는 프로그램을 만든다고 하자 

3
2
1

이 countDown함수는 결과가 3만 나올 것이다.

function countDown(fromNumber){
	console.log(fromNumber);
}
countDown(3);

3에서 1부터 나오게 하기 위한 방법

1.먼저 3을 프린트

2. countdown(2)는 2를 보여주게 프린트

3.countdown(1)은 1을 보여주게 프린트 

 

function countDown(fromNumber){
	console.log(fromNumber);
    countDown(fromNumber-1);
}
countDown(3);

이렇게 코드를 치면, 에러가 나지 않을것 같지만 함수를 종료하는 문이 없어서

maximum call stack size exceeded가 뜬다

 

countDown()함수는 파라메터가 0일때 멈춘다 

function countDown(fromNumber){
	console.log(fromNumber);
    let nextNumber = fromNumber -1;
    if(nextNumber>0){
    	countDown(nextNumber);
    }
}

countDown(3);

재귀함수로 1부터 n까지의 숫자 합 구하기 

 

1 -> 1

2 -> 2+1

3->3+2+1

4->4+3+2+1

5->5+4+3+2+1

function countN(number){
	if(number<=1){
    return number;
    }
    return number + countN(number-1);
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Development (국비 복습 ) > JavaScript' 카테고리의 다른 글

자바스크립트 closure  (0) 2023.02.27
구조분해할당  (0) 2023.02.26
input안에 값넣으면 리스트 추가  (0) 2023.02.24
자바스크립트 call()  (0) 2023.02.22
자바스크립트 this 키워드 !!!!!!!!!!  (0) 2023.02.22

댓글