Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais

Récursivité (JavaScript)

 

La récursivité est une technique de programmation importante dans laquelle une fonction s'appelle elle-même.

Le calcul de factorielles constitue un exemple de récursivité. La factorielle d'un nombre n est calculée en multipliant 1 x 2 x 3 x... n. L'exemple suivant montre comment calculer des factorielles de manière itérative, autrement dit, à l'aide d'une boucle while dans laquelle le résultat est calculé.

function factorial(num)
{
    // If the number is less than 0, reject it.
    if (num < 0) {
        return -1;
    }
    // If the number is 0, its factorial is 1.
    else if (num == 0) {
        return 1;
    }
    var tmp = num;
    while (num-- > 2) {
        tmp *= num;
    }
    return tmp;
}

var result = factorial(8);
document.write(result);

// Output: 40320

Vous pouvez très simplement rendre l'exemple récursif. Au lieu d'utiliser une boucle while pour calculer la valeur, vous pouvez simplement appeler factorial à nouveau, en passant la valeur suivante la plus faible. La récursivité s'arrête lorsque la valeur est 1.

function factorial(num)
{
    // If the number is less than 0, reject it.
    if (num < 0) {
        return -1;
    }
    // If the number is 0, its factorial is 1.
    else if (num == 0) {
        return 1;
    }
    // Otherwise, call this recursive procedure again.
    else {
        return (num * factorial(num - 1));
    }
}

var result = factorial(8);
document.write(result);

// Output: 40320
Afficher: