반응형
※간단히 말하면 - 함수가 함수 안에 있는 자기 자신을 호출한다.
*종료 조건 없는 재귀함수 (무한반복) - 잘못된 방식
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 |
댓글