Quelle est la différence entre la récursivité et la boucle

le différence principale entre la récursion et la boucle est que La récursivité est un mécanisme permettant d'appeler une fonction dans la même fonction, tandis que la boucle est une structure de contrôle qui permet d'exécuter un ensemble d'instructions encore et encore jusqu'à ce que la condition donnée soit vraie..

La récursivité et la boucle sont deux concepts de programmation. Ces deux techniques aident à développer des programmes petits à complexes.

Zones clés couvertes

1. Quelle est la récursion
- Définition, fonctionnalité
2. Quelle est la boucle
- Définition, fonctionnalité
3. Quelle est la différence entre la récursivité et la boucle
- Comparaison des différences clés

Mots clés

Faire en boucle, pour boucle, boucle, récursivité, boucle en boucle

Quelle est la récursion

Quand une fonction s’appelle dans la fonction, elle s’appelle récursion. Un exemple de programme avec récursivité est le calcul factoriel.

n! = n * (n-1) !, si n> 0

n! = 1 si n = 0;

Figure 1: Programme factoriel à Java

Selon le programme ci-dessus, il crée un objet de Factorial. Ensuite, en utilisant cet objet, il appelle la méthode factorielle. Et, la méthode obtient la valeur 4. Ensuite, la section else s'exécute. Suite à cela, il appelle factorielle (3). Ensuite, la section else s'exécute. Il appelle factorial (2). Ensuite, la section else s'exécute. Il appelle factorial (1) et la section else s'exécute à nouveau. Il appelle factorial (0). Maintenant, n est 0. Il retourne 1. Enfin, 1x2x3x4 = 24 est renvoyé et les valeurs sont affichées à l'écran. De même, une fonction factorielle s’appelle encore et encore.

Quelle est la boucle

Parfois, il est nécessaire d'exécuter un bloc de code à plusieurs reprises. Les langages de programmation fournissent une structure de contrôle appelée boucle permettant d'exécuter un ensemble d'instructions. Loop exécute une instruction à l'intérieur du bloc, l'une après l'autre. Il existe trois types de boucles: boucle while, boucle for et boucle while. De plus, un itération se réfère également à une boucle.

Alors que la boucle

Une boucle while contient une expression de test. Si cette expression est vraie, les instructions contenues dans la boucle while sont exécutées. À la fin des instructions, il vérifie à nouveau l'expression de test. Ensuite, ce processus se répète jusqu'à ce que l'expression de test devienne fausse. Lorsque l'expression de test est false, la boucle while se termine. Ensuite, le contrôle passe à la première instruction après la boucle while.

Figure 2: programme avec boucle while

Dans le programme ci-dessus, x est 5. Il est inférieur à 10. Par conséquent, il sera imprimé. Ensuite, la valeur x augmente. Maintenant, x est 6. Il est également inférieur à 10; par conséquent, il imprimera. Puis à nouveau la valeur x augmente. Maintenant, x est 7. Ainsi, ce processus se répète. Quand x vaut 10, la condition est fausse et la boucle se termine.

Pour boucle

La boucle For contient l'initialisation, l'expression de test et la mise à jour. L'expression d'initialisation s'exécute une fois. Ensuite, il évalue l'expression du test. Si c'est vrai, les instructions à l'intérieur de la boucle s'exécutent. À la fin de la boucle, il évalue l'expression mise à jour. Ainsi, ce processus se répète jusqu'à ce que l'expression du test soit fausse. Quand c'est faux, la boucle for se termine. Ensuite, le contrôle passe à l'instruction suivante après la boucle for.

Figure 3: Programme avec boucle For

Dans la boucle for précédente, la valeur x est 1. Elle est inférieure à 5. La valeur sera donc imprimée. La valeur x est ensuite incrémentée de 1. La valeur x est égale à 2. Elle est également inférieure à 5. Elle est donc imprimée. Là encore, la valeur x augmente de 1. À présent, x est égal à 3. Ce processus se répète. Lorsque x vaut 6, la condition de test devient fausse et la boucle se termine..

Faire en boucle

La boucle while est similaire à la boucle while, mais elle vérifie la condition après avoir exécuté les instructions de boucle. Par conséquent, que la condition soit vraie ou fausse, la boucle s'exécute au moins une fois. Ici, la vérification de la condition a lieu après l'exécution de la boucle. Si la condition est vraie, les instructions de boucle s'exécuteront à nouveau. Ce processus se répète jusqu'à ce que la condition devienne fausse.

Figure 4: programme avec la boucle Do While

La valeur de x est initialement 5. La boucle do while s'exécute et affiche la valeur 5. x devient 6. Elle est inférieure à 10. Donc, 6 s'imprimera. Ensuite, x devient 7. Il est également inférieur à 10. Et, ce processus se répète. Lorsque x vaut 9, la valeur est imprimée. Mais lorsque x devient 10, la condition devient fausse. Par conséquent, la boucle se termine.

Par exemple, supposons que x soit initialement égal à 20. Il en imprimera 20. Ensuite, x sera incrémenté et x devient 21. La condition de test est fausse. Par conséquent, il mettra fin à la boucle. La valeur 20 est supérieure à 10 et la condition de test est fausse. Cependant, la boucle s'exécute une fois. Par conséquent, la boucle do while s'exécute au moins une fois.

Différence entre récursivité et boucle

Définition

La récursivité est une méthode permettant d’appeler une fonction dans la même fonction. En revanche, loop est une structure de contrôle qui permet d’exécuter un bloc de code de manière répétée dans le programme. Ces définitions contiennent la différence fondamentale entre récursivité et boucle.

La vitesse

La vitesse est une différence majeure entre la récursivité et la boucle. L'exécution de la récursivité est plus lente. Cependant, la boucle s'exécute plus rapidement que la récursion.

Empiler

En récurrence, la pile est utilisée pour stocker les variables locales lorsque la fonction est appelée. Mais, la boucle n'utilise pas de pile.

État

S'il n'y a pas de condition de fin, il peut s'agir d'une récursion infinie. Cependant, si la condition ne devient jamais fausse, ce sera une boucle infinie. C'est une autre différence entre récursivité et boucle.

La complexité de l'espace

De plus, la complexité spatiale du programme récursif est supérieure à une boucle.

Lisibilité du code

Une autre différence entre récursivité et boucle est qu’un programme avec récursivité est plus lisible qu’un programme avec boucles..

Conclusion

La différence entre récursivité et boucle réside dans le fait que la récursivité est un mécanisme permettant d'appeler une fonction dans la même fonction, tandis que boucle est une structure de contrôle qui permet d'exécuter un ensemble d'instructions à plusieurs reprises jusqu'à ce que la condition donnée soit vraie..

Référence:

1. «Récursion (informatique)». Wikipedia, Wikimedia Foundation, 12 septembre 2018, disponible ici..
2. «Java Loop Control». Www.tutorialspoint.com, disponible ici.