Une procédure ou une fonction peut contenir un appel à une autre procédure en son sein. Y compris, le sous-programme peut s'appeler. Dans ce cas, l'ordinateur s'en fiche. Comme toujours, il exécute systématiquement les commandes qu'il a rencontrées de haut en bas.
Si vous vous souvenez des mathématiques, vous pouvez y rencontrer le principe de l'induction mathématique. C'est comme suit : une affirmation est vraie pour tout n naturel si
1) il est valable pour n = 1 ;
2) de la validité de l'énoncé pour tout naturel n = k il s'ensuit qu'il est vrai pourn = k+1.
En programmation, cette technique s'appelle la récursivité.
La récursivité est un moyen de définir un ensemble d'objets en fonction de l'ensemble lui-même, sur la base de cas de base simples donnés.
Récursif est une procédure (fonction) qui s'appelle elle-même directement ou via d'autres procédures et fonctions.
Exemple de procédure récursive :
vide Rec(int a)
{
si (a>0) { Rec(a-1); }
Console.WriteLine(a);
}
Schématiquement, le travail de récursivité peut être représenté sous forme d'organigramme.
Rec()
la procédure est exécutée avec le paramètre 3 Ensuite, à l'intérieur de la procédure de paramètre 3, la procédure de paramètre 2 est appelée, et ainsi de suite, jusqu'à ce que la procédure de paramètre 0 soit appelée. Ensuite, le contrôle est renvoyé à la procédure avec le paramètre 1, elle termine également son travail en imprimant le numéro 1, et ainsi de suite. avant la procédure avec le paramètre 3.
Toutes les procédures appelées sont stockées en mémoire jusqu'à ce qu'elles terminent leur travail. Le nombre de procédures simultanées est appelé profondeur de récursivité.