La plupart des réponses semblent supposer que iterative
= for loop
. Si votre boucle for n'est pas limitée ( a la C, vous pouvez faire ce que vous voulez avec votre compteur de boucle), alors c'est correct. Si c'est un réel for
(comme en Python ou dans la plupart des langages fonctionnels où il n'est pas possible de modifier manuellement le compteur de la boucle), alors c'est no correct.
Toutes les fonctions (calculables) peuvent être implémentées à la fois de manière récursive et à l'aide de while
des boucles (ou des sauts conditionnels, qui sont en fait la même chose). Si vous vous limitez vraiment à for loops
vous n'obtiendrez qu'un sous-ensemble de ces fonctions (les fonctions récursives primitives, si vos opérations élémentaires sont raisonnables). Il s'agit d'un sous-ensemble assez large qui contient toutes les fonctions que vous êtes susceptibles de rencontrer en pratique.
Ce qui est beaucoup plus important, c'est que de nombreuses fonctions sont très faciles à mettre en œuvre de manière récursive et terriblement difficiles à mettre en œuvre de manière itérative (la gestion manuelle de votre pile d'appels ne compte pas).