Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

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

  1. Opérateurs Java
  2. InterfaceJava
  3. Java essayer avec des ressources
  4. Annotations Java
  5. Types d'annotations Java
  6. Méthode String Length () en Java:comment trouver avec l'exemple
  7. Méthode Java String charAt() avec exemple
  8. Méthode Java String endsWith () avec exemple
  9. Méthode Java String replace(), replaceAll() et replaceFirst()