Récurrence JavaScript (avec exemples)

Dans ce didacticiel, vous découvrirez la récursivité en JavaScript à l'aide d'exemples.

La récursivité est un processus qui s'appelle lui-même. Une fonction qui s'appelle elle-même est appelée une fonction récursive.

La syntaxe de la fonction récursive est:

 function recurse() ( // function code recurse(); // function code ) recurse();

Ici, la recurse()fonction est une fonction récursive. Il s'appelle à l'intérieur de la fonction.

Fonctionnement de la récursivité en JavaScript

Une fonction récursive doit avoir une condition pour arrêter de s'appeler. Sinon, la fonction est appelée indéfiniment.

Une fois la condition remplie, la fonction cesse de s'appeler. C'est ce qu'on appelle une condition de base.

Pour éviter une récursion infinie, vous pouvez utiliser l'instruction if… else (ou une approche similaire) où une branche effectue l'appel récursif et l'autre non.

Donc, cela ressemble généralement à ceci.

 function recurse() ( if(condition) ( recurse(); ) else ( // stop calling recurse() ) ) recurse();

Un exemple simple de fonction récursive serait de décompter la valeur jusqu'à 1.

Exemple 1: imprimer des nombres

 // program to count down numbers to 1 function countDown(number) ( // display the number console.log(number); // decrease the number value const newNumber = number - 1; // base case if (newNumber> 0) ( countDown(newNumber); ) ) countDown(4);

Production

 4 3 2 1

Dans le programme ci-dessus, l'utilisateur passe un nombre comme argument lors de l'appel d'une fonction.

À chaque itération, la valeur numérique est diminuée de 1 et la fonction countDown()est appelée jusqu'à ce que le nombre soit positif. Voici newNumber> 0la condition de base.

Cet appel récursif peut être expliqué dans les étapes suivantes:

 countDown (4) imprime 4 et appelle countDown (3) countDown (3) imprime 3 et appelle countDown (2) countDown (2) imprime 2 et appelle countDown (1) countDown (1) imprime 1 et appelle countDown (0)

Lorsque le nombre atteint 0 , la condition de base est remplie et la fonction n'est plus appelée.

Exemple 2: Trouver factoriel

 // program to find the factorial of a number function factorial(x) ( // if number is 0 if (x === 0) ( return 1; ) // if number is positive else ( return x * factorial(x - 1); ) ) const num = 3; // calling factorial() if num is non-negative if (num> 0) ( let result = factorial(num); console.log(`The factorial of $(num) is $(result)`); )

Production

 La factorielle de 3 est 6

Lorsque vous appelez une fonction factorial()avec un entier positif, elle s'appellera récursivement en diminuant le nombre.

Ce processus se poursuit jusqu'à ce que le nombre devienne 1 . Ensuite, lorsque le nombre atteint 0 , 1 est renvoyé.

Fonctionnement de la récursivité JavaScript dans Factorial

Cet appel récursif peut être expliqué dans les étapes suivantes:

 factorial (3) renvoie 3 * factorial (2) factorial (2) renvoie 3 * 2 * factorial (1) factorial (1) renvoie 3 * 2 * 1 * factorial (0) factorial (0) renvoie 3 * 2 * 1 * 1

Articles intéressants...