Maison > Article > interface Web > Comment JavaScript utilise la récursivité
Cet article vous présentera la méthode de récursivité JavaScript. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
La fonction appelle la fonction elle-même, qui est la récursion doit avoir une condition de fin
function f1() { console.log("从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事:"); f1(); }; f1();//浏览器崩溃,因为没有结束条件——死循环 改进如下: var i=0; function f1() { i++; if (i<5){ f1(); } console.log("从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事:"); }; f1();.
Implémentation récursive : trouver la somme de n nombres 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));
Processus d'exécution :
Le code exécute getSum(5)—>entre dans la fonction À ce moment, x vaut 5, et ce qui est exécuté est. 5+getSum( 4), à ce moment le code attend
à ce moment 5+getSum(4), le code ne calcule pas en premier, exécute d'abord getSum(4), entre dans la fonction, exécute 4+getSum(3), attend, la première exécution est getSum(3), entrez la fonction, exécutez 3+getSum(2), attendez, exécutez getSum(2) en premier, entrez la fonction, exécutez 2+getSum(1) ; attendez, exécutez getSum(1) d'abord, exécutez Le jugement est que x==1, renvoie 1, donc,
Le résultat de getSum(1) à ce moment est 1, commencez à sortir
2+getSum(1) à ce moment Le résultat est : 2+1
Exécution :
getSum(2)---->2+1
3+getSum(2) Le résultat à ce moment Il est 3+2+1
4+getSum(3) Le résultat à ce moment est 4+3+2+1
5+getSum(4) Le résultat à ce moment est 5+4 +3+2+1
结果:15
Quelques autres :
//递归案例:求一个数字各个位数上的数字的和: 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));
[Apprentissage recommandé : Tutoriel avancé javascript]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!