본문 바로가기
참고/JAVASCRIPT

재귀함수 - Recursive Function

by Elfen Lied 2020. 5. 21.
반응형

※간단히 말하면 - 함수가 함수 안에 있는 자기 자신을 호출한다.

 

 

*종료 조건 없는 재귀함수 (무한반복) - 잘못된 방식

function func() {
    document.write("재귀");
    
    func();
}
func();


설명
func(); 이 내부 외부에 있고 종료 시점의 조건이 없다

결과 "재귀"가 무한히 출력된다.

 

 

*종료 조건을 작성한 재귀함수

function func(n) {
    document.write("재귀");

    n = n - 1;

    if(n === 0) {
		//
    } else {
        func(n);
    }    
}
func(3);



설명

함수 외부의 func(3); 의 인수 3을 줬다.

함수에 파라미터는 n이 인수 3을 받는다. // n = 3

코드를 보면 n = n - 1  >>>> 즉 반복할 때 마다 인수를 뺀다 

아래쪽 if문에서 n이 0이되면 if를 실행하고 반복이 끝나고
n이 아직 0이 아닐땐 else가 실행되서 func(n) 남은 인수만큼 실행



과정
    func(n) >>> |"재귀"    n = n - 1     // n   >> if or else func(n)
    ----------------------------------------------------------------

    func(3) >>> |"재귀"    3 = 3 - 1     // 2   >>  else  func(2)
    
    func(2) >>> |"재귀"    2 = 2 - 1     // 1   >>  else  func(1)
    
    func(1) >>> |"재귀"    1 = 1 - 1     // 0   func(0)  >>  if 실행
    
    현재까지 "재귀"가 세번 출력됐고, 파라미터값(n)이 0이 되었다.
    
    func(0)이 되고, if문의 n === 0에 해당하여 반복종료.
    
    
결과

재귀재귀재귀    출력
    
      
     
      

 

반응형

'참고 > JAVASCRIPT' 카테고리의 다른 글

콜백함수와 DOM 제어  (0) 2020.05.22
로또 lotto  (0) 2020.05.22
배열 - slice, splice, concat, pop, push  (0) 2020.05.19
스크롤 이벤트 - 클릭시 상단으로 이동하는 버튼 구현  (0) 2020.05.16
함수 return  (0) 2020.05.15

댓글