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

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

folderشی گرایی
commentsبدون دیدگاه
اساطیر زبان

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

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

 


جاوا

توی این پک فوق العاده، جاوا رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با جاوا اپلیکیشن بزن، پروژه محور یاد بگیر و حسابی پول در بیار! 


 

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

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

C:\Users\Mr\Desktop\java-recursive-call.jpg

برنامه بالا ، ابتدا تابع ()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 ارسال می شود.

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

C:\Users\Mr\Desktop\how-recursion-works-java.jpg

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

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

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

تفاوت پک های حرفه ای ما با آموزشهای رایگان: بطور خلاصه از زمین تا آسمان! 1-پکها، جدیدترین نسخه نرم افزارها را آموزش می دهند با قابلیت های بسیار بیشتر. 2-پکها توسط متخصص آن نرم افزار، به صورت کاملا پروژه محور و با حل چالش هایی که در مسیر کار عملی و حرفه ای با آن روبرو می شوید تهیه شده اند و بعد از استفاده، کاملا برای بازار کار آماده اید! 3- متد این پکها کاملا کار شده و تا ماهها، در ذهن تان ماندگارند و یادگیری بسیار سریعتر و کاملتری خواهید داشت. آموزشهای رایگان فقط دستورات نرم افزارها را (آنهم ناقص) بیان می کنند و تازه برای ورود به بازار باید ماهها تجربه عملی هم کسب کنید !!

turned_in

چرب زبان

با این اپلیکیشن ساده، هر زبانی رو فقط با 5 دقیقه در روز، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، تقویت حافظه، آموزش تصویری. یادگیری زبان کلید یادگیری هر مهارتی در قرن 21 !


حتما بخوانید!

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست