Je suis nouveau et j'ai travaillé pour essayer de rationaliser cela dans mon cerveau mais je n'arrive pas à le comprendre. D'abord la manière que beaucoup reconnaîtront l'aide d'un simple « pour » boucle:aider à comprendre la récursivité et les exposants - JavaScript
function power(base, exponent){
var result = 1;
for(var i = 0; i < exponent; i++){
if(exponent == 0)
return 1;
else
result *= base;
};
return result;
}
Dans cette section, je lis à propos de récursivité et de parler de la façon dont une fonction peut s'appeler aussi longtemps qu'il ne provoque pas un débordement de pile . Le code est le suivant:
function power(base, exponent) {
if (exponent == 0)
return 1;
else
return base * power(base, exponent - 1);
}
console.log(power(2, 3));
Ce que je vais avoir un problème est de comprendre comment cela fonctionne en fait, ce que je pense qui se passe:
Après il passe devant le premier « si » il se déplace vers le "else" et s'appelle lui-même pour revenir en haut de l'instruction if, moins 1, à chaque fois jusqu'à ce qu'il atteigne 0 quand il retournera simplement le "résultat". Est-ce correct? Ou est-ce que je manque quelque chose entièrement?
vous demandez ou expliquez récursion ce que vous faites et avez besoin ...? – Bhargav
C'est presque exact, cela retournera le résultat à la fonction caller qui retournera son résultat et ainsi de suite jusqu'à ce que vous obteniez le résultat final. – Daniel
Bhargav, je demandais si j'avais raison avec ma supposition, merci linas mnew je vais regarder ça aussi (je ne l'ai pas vu plus tôt) – Christian