Récursivité Java
Récursivité Java
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 appelée méthode récursive. Et ce processus est connu sous le nom de récursivité.
Un exemple du monde physique serait de placer deux miroirs parallèles face à face. Tout objet entre eux serait reflété de manière récursive.
Comment fonctionne la récursivité ?
Dans l'exemple ci-dessus, nous avons appelé le recurse()
méthode à l'intérieur du 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. Ceci est 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 à l'infini.
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 factorial = 24
Dans l'exemple ci-dessus, nous avons une méthode nommée factorial()
. Le factorial()
est appelé depuis le main()
méthode. avec le numéro variable passée en argument.
Ici, notez la déclaration,
return n * factorial(n-1);
Le factorial()
méthode s'appelle elle-même. Initialement, la valeur de n est 4 dans factorial()
. Lors du prochain appel récursif, 3 est passé au factorial()
méthode. Ce processus se poursuit jusqu'à n est égal à 0.
Quand n est égal à 0, le if
L'instruction renvoie false, donc 1 est renvoyé. Enfin, le résultat cumulé est passé au 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 revient, 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.
D'un autre côté, 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é ?
Java
- Opérateurs Java
- InterfaceJava
- Java essayer avec des ressources
- Annotations Java
- Types d'annotations Java
- Méthode String Length () en Java:comment trouver avec l'exemple
- Méthode Java String charAt() avec exemple
- Méthode Java String endsWith () avec exemple
- Méthode Java String replace(), replaceAll() et replaceFirst()