Dans ce didacticiel, vous découvrirez la fonction récursive Java, ses avantages et ses inconvénients.
En Java, une méthode qui s'appelle elle-même est connue sous le nom de méthode récursive. Et, ce processus est connu sous le nom de récursivité.
Un exemple de monde physique serait de placer deux miroirs parallèles face à face. Tout objet entre eux serait reflété récursivement.
Comment fonctionne la récursivité?

Dans l'exemple ci-dessus, nous avons appelé la recurse()
méthode depuis l'intérieur de la main
méthode. (appel de méthode normal). Et, à l'intérieur de la méthode recurse (), nous appelons à nouveau la même méthode recurse. Il s'agit d'un appel récursif.
Afin d'arrêter l'appel récursif, nous devons fournir certaines conditions à l'intérieur de la méthode. Sinon, la méthode sera appelée indéfiniment.
Par conséquent, nous utilisons l'instruction if… else (ou une approche similaire) pour terminer l'appel récursif à l'intérieur de la méthode.
Exemple: factorielle d'un nombre utilisant la récursivité
class Factorial ( static int factorial( int n ) ( if (n != 0) // termination condition return n * factorial(n-1); // recursive call else return 1; ) public static void main(String() args) ( int number = 4, result; result = factorial(number); System.out.println(number + " factorial = " + result); ) )
Sortie :
4 factorielle = 24
Dans l'exemple ci-dessus, nous avons une méthode nommée factorial()
. Le factorial()
est appelé à partir de la main()
méthode. avec la variable numérique passée en argument.
Ici, remarquez la déclaration,
return n * factorial(n-1);
La factorial()
méthode s'appelle elle-même. Initialement, la valeur de n est 4 à l'intérieur factorial()
. Lors du prochain appel récursif, 3 est passé à la factorial()
méthode. Ce processus se poursuit jusqu'à ce que n soit égal à 0.
Lorsque n est égal à 0, l' if
instruction renvoie false et 1 est donc renvoyé. Enfin, le résultat cumulé est passé à la main()
méthode.
Fonctionnement du programme factoriel
L'image ci-dessous vous donnera une meilleure idée de la façon dont le programme factoriel est exécuté en utilisant la récursivité.

Avantages et inconvénients de la récursivité
Lorsqu'un appel récursif est effectué, de nouveaux emplacements de stockage pour les variables sont alloués sur la pile. Au fur et à mesure que chaque appel récursif est renvoyé, les anciennes variables et paramètres sont supprimés de la pile. Par conséquent, la récursivité utilise généralement plus de mémoire et est généralement lente.
En revanche, une solution récursive est beaucoup plus simple et prend moins de temps à écrire, déboguer et maintenir.
Lecture recommandée: Quels sont les avantages et les inconvénients de la récursivité?