دیدهایم که بازگشت، اجرای مکرر دستورالعملهای موجود در یک زیر روال است. و این به نوبه خود شبیه کار چرخه است. زبان های برنامه نویسی هستند که ساختار حلقه در آنها اصلا وجود ندارد، به عنوان مثال، Prolog.
بیایید سعی کنیم عملکرد حلقه for را شبیه سازی کنیم.
حلقه for شامل یک متغیر شمارنده گام است. در یک زیربرنامه بازگشتی، چنین متغیری می تواند به عنوان یک پارامتر ارسال شود.
<پیش>
رویه //LoopImitation() با دو پارامتر
//پارامتر اول – گام شمار، پارامتر دوم – تعداد کل مراحل
Procedure LoopImitation(i, n: integer);
شروع
writeln('Hello N ', i); // عملگر برای هر مقدار i تکرار شود
اگر من < n سپس // تا زمانی که شمارنده حلقه برابر با مقدار n شود،
LoopImitation(i + 1, n); // فراخوانی یک نمونه جدید از رویه، با پارامتر i+1 (انتقال به مقدار بعدی i)
پایان؛