>웹 프론트엔드 >JS 튜토리얼 >JavaScript가 재귀를 사용하는 방법

JavaScript가 재귀를 사용하는 방법

醉折花枝作酒筹
醉折花枝作酒筹앞으로
2021-04-29 09:12:432541검색

이 글에서는 JavaScript 재귀 방법을 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

JavaScript가 재귀를 사용하는 방법

재귀:

함수는 함수 자체를 호출하는데, 이는 재귀에 종료 조건이 있어야 합니다.

    function f1() {
        console.log("从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事:");
        f1();
    };
    f1();//浏览器崩溃,因为没有结束条件——死循环

	改进如下:
	    var i=0;
    function f1() {
        i++;
        if (i<5){
            f1();
        }
        console.log("从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事:");
    };
    f1();

리틀 체스넛:

재귀 구현: n 숫자의 합 n을 찾습니다. =5 ------->5+4+3+2+1

//for 循环写法:
    var sum=0;
    for (var i=0;i<=5;i++){
        sum+=i;
    }
    console.log(sum);
----------------------分割线---------------------------

   function getSum(x) {
        if (x==1){
          return 1
        }
        return x+getSum(x-1);
    };

    var sum1=getSum(5);
    console.log(sum1);
    console.log(getSum(10));

실행 프로세스:
코드는 getSum(5)을 실행합니다. —>함수를 입력합니다. 이때 x는 5입니다. , 실행은 5+getSum(4), 이때 코드는

이때 5+getSum(4)을 기다리고 있으며, 코드는 먼저 계산하지 않고 getSum(4)을 먼저 실행한 후 함수에 들어가서 실행합니다. 4+getSum(3), 잠깐, 첫 번째 실행은 getSum(3)입니다. 함수에 들어가고, 3+getSum(2)을 실행하고, 잠깐, getSum(2)을 먼저 실행하고, 함수에 들어가고, 2+getSum(1)을 실행합니다. ; 잠깐, getSum(1)을 먼저 실행하면 x==1의 판단이 실행되고 1이 반환되므로

이때 getSum(1)의 결과는 1이므로 나가기 시작합니다

2+getSum( 1) 이때의 결과는 다음과 같습니다. 2+ 1

Execution:

getSum(2)---->2+1

3+getSum(2) 이때의 결과는 3+2+1입니다.

4+getSum(3) 이때 결과는 4+3+2+1

5+getSum(4) 이때 결과는 5+4+3+2+1

    结果:15

A입니다. 몇 가지 더:

    //递归案例:求一个数字各个位数上的数字的和:  123   --->6 ---1+2+3
    //523
    function getEverySum(x) {
        if(x<10){
            return x;
        }
        //获取的是这个数字的个位数
        return x%10+getEverySum(parseInt(x/10));
    }
    console.log(getEverySum(1364));//5
 //递归案例:求斐波那契数列

    function getFib(x) {
        if(x==1||x==2){
            return 1
        }
        return getFib(x-1)+getFib(x-2);
    }
    console.log(getFib(12));

[권장 학습: javascript 고급 튜토리얼 ]

위 내용은 JavaScript가 재귀를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제