CodeGym /Blog Java /Random-FR /Récursion Java
John Squirrels
Niveau 41
San Francisco

Récursion Java

Publié dans le groupe Random-FR

Qu’est-ce que la récursion Java ?

Le scénario dans lequel une fonction ou une méthode s'appelle elle-même est appelé récursion et une telle fonction ou méthode est appelée fonction récursive ou méthode récursive. Cette approche est toujours utilisée pour diviser des problèmes complexes en un problème simple et plus facile à écrire. Un exemple simple consiste à placer deux miroirs l’un devant l’autre et ils commenceront à se refléter de manière récursive, ce que vous pourrez voir facilement.

Récursivité indirecte

L'exemple ci-dessus représente la récursivité indirecte , c'est-à-dire la fonction un appelant la fonction deux et la fonction deux appelant la fonction un.

Récursion directe

Lorsqu'une méthode s'appelle encore et encore, on parle de récursivité directe .

État d'arrêt

Maintenant, vous vous demanderez si une méthode s'appelle encore et encore, alors assurez-vous qu'elle sera confrontée à une erreur Stack Overflow . Oui, vous avez raison, comme une boucle infinie, elle peut se transformer en une récursion infinie. Nous devons fournir une condition de base ou une condition de terminaison afin d'arrêter cette récursivité infinie, appelée condition d'arrêt, et cette condition est toujours fournie à l'intérieur de la méthode recurse, que nous verrons en détail dans l'exemple ci-dessous.

Exemple de récursion

class Recursion {

    static int factorial( int n ) {
        // base condition or termination condition
        if (n != 0)
        // here we are calling the recursive method
            return n * factorial(n-1);
        else
            return 1;
    }

    public static void main(String[] args) {
        // initializing the variables
        int number = 5, result;
        result = factorial(number);
        System.out.println(number + " factorial = " + result);

        // changing the value from 5 to 10
        number = 10;
        result = factorial(number); // recursive function call
        System.out.println(number + " factorial = " + result);
    }
}

Exemple de sortie

Factorielle 5 = 120 Factorielle 10 = 3628800
Dans cet exemple de méthode récursive, nous avons une fonction factorielle appelée depuis la méthode principale. Nous avons passé une valeur de 5 pour voir quelle est sa factorielle, qui est 120. Cette fonction factorielle s'appelle à nouveau en passant la valeur de 4, qui appelle et transmet à nouveau la valeur de 3, et ainsi de suite, jusqu'à ce que la condition d'arrêt soit rencontré, qui est la valeur de 0. La même chose se produit lorsque nous changeons la valeur de 5 à 10.

Avantages et inconvénients de la récursivité

Un code récursif est simple à écrire, déboguer et maintenir, ce qui permet de gagner du temps. Mais d'un autre côté, à chaque appel, la mémoire est consommée pour les variables, et de ce fait, nous pouvons manquer de mémoire.

Conclusion

Nous espérons que vous comprenez la récursion Java et comment la mettre en œuvre, ainsi que ses avantages et ses inconvénients. N'hésitez pas à vous entraîner et à revenir chaque fois que vous avez besoin d'aide supplémentaire. Bon apprentissage!
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION