يمكن أن يحتوي الإجراء أو الوظيفة على استدعاء لإجراء آخر داخله. بما في ذلك ، يمكن للروتين الفرعي استدعاء نفسه. في هذه الحالة ، لا يهتم الكمبيوتر. هو ، كما هو الحال دائمًا ، ينفذ باستمرار الأوامر التي التقى بها من أعلى إلى أسفل.
إذا كنت تتذكر الرياضيات ، فهناك يمكنك تلبية مبدأ الاستقراء الرياضي. على النحو التالي: & nbsp؛ بعض العبارات صحيحة لكل طبيعي & nbsp؛ n إذا
نبسب ؛ نبسب ؛ 1) صالح لـ & nbsp؛ n = 1 ؛
نبسب ؛ نبسب ؛ 2) من صحة العبارة لأي تعسفي طبيعي n = k & nbsp ؛ ويترتب على ذلك أنها صحيحة لـ & nbsp؛ n = k + 1 .
في البرمجة ، هذه التقنية تسمى العودية.
التكرار strong> طريقة لتعريف مجموعة من الكائنات وفقًا للمجموعة نفسها ، بناءً على حالات أساسية بسيطة معينة.
التكرار strong> هو إجراء (وظيفة) تستدعي نفسها مباشرة أو من خلال إجراءات ووظائف أخرى.
مثال على إجراء تكراري: span>
تسجيل باطل (int a)
{
نبسب ؛ إذا (a & gt؛ 0) {Rec (a-1) ؛ }
نبسب ؛ Console.WriteLine (أ) ؛
}
تخطيطيًا ، يمكن تمثيل عمل العودية كمخطط انسيابي. span> span >
Rec ()
& nbsp؛ يتم تنفيذ الإجراء باستخدام المعلمة 3 بعد ذلك ، داخل الإجراء مع المعلمة 3 ، يتم استدعاء الإجراء مع المعلمة 2 ، وهكذا ، حتى يتم استدعاء الإجراء مع المعلمة 0. work. ثم يتم نقل التحكم مرة أخرى إلى الإجراء بالمعامل 1 ، كما أنه ينهي عمله بطباعة الرقم 1 ، وهكذا. قبل الإجراء مع المعلمة 3. نبسب ؛
يتم تخزين جميع الإجراءات التي تسمى في الذاكرة حتى يكملوا عملهم. يُطلق على عدد الإجراءات المتزامنة اسم عمق العودية strong>.