آموزش کامل توابع بازگشتی در جاوا (به زبان ساده)

رتبه: 0 ار 0 رای sssss
آموزش کامل توابع بازگشتی در جاوا
نویسنده: میلاد حیدری زمان مطالعه 2 دقیقه
Banner Image

در این آموزش یاد می گیرید که تابع بازگشتی ایجاد کنید. تابعی که خودش را صدا می کند. همچنین با مزایا و معایب آن آشنا می شوید.

متدی که خود را فراخوانی می کند به عنوان متد بازگشتی شناخته می شود. این متد به عنوان تابع بازگشتی شناخته می شود.

یک مثال از دنیای فیزیکی ، قرار دادن دو آینه موازی در کنار یکدیگر است. هر چیزی که بین آن ها باشد به صورت بازگشتی منعکس می شود.

تابع بازگشتی چگونه کار می کند؟

تابع بازگشتی چگونه کار می کند؟

برنامه بالا ، ابتدا تابع ()recurse از داخل تابع main (فراخوانی روش عادی) صدا زده می شود.

همچنین ، تابع ()recurse از داخل با همان تابع ()recurse فراخوانی می شود. این یک تابع بازگشتی است.

تابع بازگشتی به حالت عادی ادامه می یابد تا برخی از شرط ها برای جلوگیری از اجرای آن رخ دهد. اگر اینطور نباشد ، بازگشت بی نهایت رخ می دهد.

از این رو ، برای جلوگیری از ایجاد تابع بازگشتی نامحدود ، با دستور if … else (یا روش مشابه) در قسمتی از کد اتمام تابع بازگشتی را می نویسیم.

مثال: فاکتوریل یک عدد با استفاده از تابع بازگشتی

  1. class Factorial {
  2. static int factorial( int n ) {
  3. if (n != 0)
  4. return n * factorial(n-1); // recursive call
  5. else
  6. return 1;
  7. }
  8. public static void main(String[] args) {
  9. int number = 4, result;
  10. result = factorial(number);
  11. System.out.println(number + ” factorial = ” + result);
  12. }
  13. }

خروجی

۴ factorial = 24

در ابتدا ، ()factorial از تابع ()main با عدد ارسال شده به عنوان آرگومان فراخوانی می شود.

در داخل تابع ()factorial ، مقدار n در ابتدا ۴ است. در طی فراخوانی بازگشتی بعدی ، ۳ به تابع ()factorial ارسال می شود. این روند تا زمانی که n برابر با ۰ نباشد ادامه می یابد.

اگر n برابر با ۰ باشد ، شرط if اجرا نمی شود و قسمت else اجرا می شود که ۱ را بر می گرداند، و result به تابع ()main ارسال می شود.

شکل زیر ایده بهتری در مورد چگونگی عملکرد برنامه فوق ارائه می دهد.

فاکتوریل یک عدد با استفاده از تابع بازگشتی

مزایا و معایب تابع بازگشتی

هنگامی که تابع بازگشتی فراخوانی می شود ، مکان جدیدی برای ذخیره متغیرها در پشته اختصاص می یابد. در هر فراخوانی بازگشتی ، متغیرها و پارامترهای قدیمی از پشته حذف می شوند. از این رو ، تابع بازگشتی به طور کلی از حافظه بیشتری استفاده می کند و در کل کند است.

از طرف دیگر ، راه حل بازگشتی بسیار ساده تر است و زمان کمتری برای نوشتن ، اشکال زدایی و نگهداری می برد.

profile name
میلاد حیدری

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

محصولات مرتبط

مشاهده همه

دیدگاهتان را بنویسید

1 2 3 4 5

0 نظر درباره «آموزش کامل توابع بازگشتی در جاوا (به زبان ساده)»

    هنوز نظری برای این بخش ثبت نشده است
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید