Recursion en Java | Expliqué

Recursion en Java | Expliqué
L'approche de la récursivité convient très bien aux problèmes qui peuvent être divisés en problèmes plus petits, plus simples et répétitifs. Il s'agit d'une procédure dans laquelle une fonction s'appelle à plusieurs reprises / récursivement et il doit y avoir au moins une condition de terminaison / arrêt pour arrêter la récursivité. La méthode qui s'appelle elle-même est décrite comme un fonction récursive Et l'ensemble du processus est connu comme récursivité en Java.

Cette écriture présente une compréhension profonde des concepts suivants liés à la récursivité Java:

  • Qu'est-ce que la récursivité en Java
  • Syntaxe de base de la fonction de récursivité
  • Comment travailler avec Java Recursion

Alors, commençons!

Qu'est-ce que la récursivité en Java

Habituellement, nous assistons à une fonction appelant une autre fonction ou fonction. Cependant, une fonction récursive s'appelle à plusieurs reprises. Les extraits divisés ci-dessous décrivent comment une méthode normale diffère d'une méthode récursive.

Syntaxe de base de la fonction normale

public void FirstFunction ()

Système.dehors.println ("Ceci est une fonction normale");
SecondFunction ();

L'extrait ci-dessus montre à quoi ressemble une fonction définie par l'utilisateur normal i.e. Il a quelques instructions (code) et appelle une fonction nommée secondFunction ().

Syntaxe de base de la fonction récursive

Jetons maintenant un œil à l'extrait ci-dessous pour comprendre à quoi ressemble une fonction récursive:

public void FirstFunction ()

Système.dehors.println ("Ceci est une fonction récursive");
FirstFunction ();

Considérez la figure ci-dessous pour comprendre comment fonctionnera la fonction récursive ci-dessus:

La figure ci-dessus montre que la fonction s'appelle continuellement je.e. Un scénario de boucle infini se produit. Maintenant, vous devez vous demander si la fonction s'appelle continuellement, alors comment va-t-elle s'arrêter? Bien! Nous devons définir les critères de terminaison pour arrêter une telle fonction à un moment donné.

État d'arrêt / terminaison

Pour l'instant, il est clair qu'il doit y avoir une condition qui contrôlera le flux de la fonction récursive. En termes programmatiques, la condition qui arrête la fonction à appeler elle-même est appelée état d'arrêt ou cas de base.

La syntaxe de la fonction récursive avec la condition d'arrêt ressemblera à ceci:

public void functionname ()

functionName ();
// condition de terminaison;

La condition d'arrêt peut être n'importe quelle condition en fonction des différentes circonstances.

Exemples de récursivité Java

Cette section fournira une compréhension détaillée du fonctionnement de la fonction récursive avec le cas de base en Java.

Exemple

L'extrait sous-donné prend un numéro de l'utilisateur et trouve le factoriel de ce numéro:

classe publique FactorialClass
static int findfactorial (int num)
if (num == 0)
retour 1;

autre
return (num * findfactorial (num - 1));


Dans l'extrait de code ci-dessus, la condition IF-Else est utilisée pour arrêter la récursivité lorsque «num» devient égal à «0».

public static void main (String [] args)
Scanner = nouveau scanner (système.dans);
Système.dehors.println ("Entrez un numéro positif:");
int numéro = scan = scan.NextInt ();
si (nombre < 0)
Système.dehors.println ("Vous avez entré un numéro non valide:");
autre
Int result = findfactorial (nombre);
Système.dehors.println ("factoriel:" + résultat);

Dans la méthode principale, nous récupérons le numéro de l'utilisateur, vérifiant que le nombre est valide ou non, et si le numéro est valide, appelez le findfactorial () méthode. L'ensemble du code générera la sortie suivante:

La sortie authentifie la fonction récursive fonctionne correctement et il a calculé correctement le factoriel de 6.

Conclusion

En Java, un processus dans lequel une fonction s'appelle encore et encore, s'appelle un fonction / méthode récursive Alors que l'ensemble du processus est connu comme récursivité. Un boîtier de base / halting doit être défini dans les fonctions récursives pour arrêter la récursivité à un moment donné, sinon la fonction ne s'arrêtera jamais et ne s'appelle pas un nombre illimité de fois. Cette écriture élabore ce qui est la récursivité, la différence entre la fonction normale et récursive, et comment créer des fonctions récursives en java.