بازگشتی

آموزش توابع بازگشتی در جاوا اسکریپت

در این آموزش درباره توابع بازگشتی در جاوا اسکریپت (JavaScript) همراه با مثال توضیح خواهیم داد.

فرآیند بازگشت یعنی فراخوانی خود و تابعی که خود را فراخوانی کند، تابع بازگشتی (recursion function) نامیده می شود.

 


جاوا اسکریپت

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


 

 


برنامه نویسی شبکه معماری کامپیوتر هوش مصنوعی و تجاری

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


 

ساختار تابع بازگشتی:

function recurse() {

// کد تابع

recurse();

// ادامه کد تابع

}

recurse();

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

عملکرد تابع بازگشتی در جاوا اسکریپت

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

پس از برقراری شرط توقف، تابع فراخوانی خود را متوقف می کند.

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

بنابراین به طور کلی ساختار تابع بازگشتی مشابه کد زیر به نظر می رسد:

function recurse() {

if(شرط) {

recurse();

}

else {

// توقف فراخوانی تابع

}

}

recurse();

شمارش معکوس از عدد n به ۱، یک مثال ساده برای تابع بازگشتی است.

مثال ۱: چاپ اعداد طبیعی به صورت نزولی

// تا ۱n نمایش اعداد طبیعی از

function countDown(number) {

// نمایش عدد

console.log(number);

// کاهش مقدار

let newNumber = number – 1;

// شرط توقف

if (newNumber > 0) {

countDown(newNumber);

}

}

countDown(4);

خروجی

۴

۳

۲

۱

در این برنامه با فراخوانی تابع countdown(number) یک عدد به عنوان آرگومان ارسال می شود.

در هر تکرار یک واحد از عدد ورودی کم می شود، تابع countDown تا زمانیکه عدد مثبت باشد، خود را فراخوانی می کند. در اینجا newNumber > 0 شرط توقف برای فراخوانی بازگشت تابع است.

این فراخوانی بازگشتی را می توان در مراحل زیر توضیح داد:

  • countDown(4) مقدار ۴ چاپ می کند و تابع countDown(3) را فراخوانی می کند.
  • countDown(3) مقدار ۳ چاپ می کند و تابع countDown(2) را فراخوانی می کند.
  • countDown(2) مقدار ۲ چاپ می کند و تابع countDown(1) را فراخوانی می کند.
  • countDown(1) مقدار ۱ چاپ می کند و تابع countDown(0) را فراخوانی می کند.

وقتی آرگومان ورودی تابع به مقدار ۰ برسد آنگاه شرط توقف برقرار می شود و فراخوانی تابع متوقف خواهد شد.

مثال ۲: محاسبه فاکتوریل یک عدد

// برنامه محاسبه مقدار فاکتوریل یک عدد

function factorial(x) {

// اگر عدد ۰ باشد

if (x === 0) {

return 1;

}

// اگر عدد مثبت باشد

else {

return x * factorial(x – 1);

}

}

let num = 3;

// فراخوانی تابع اگر عدد منفی نباشد

if (num > 0) {

let result = factorial(num);

console.log(`The factorial of ${num} is ${result}`);

}

خروجی

The factorial of 3 is 6

در این مثال تابع factorial(x) با یک عدد صحیح مثبت فراخوانی می شود. تابع به صورت بازگشتی و با یک واحد کاهش در مقدار آرگومان دوباره خود را فراخوانی می کند.

این روند تا رسیدن آرگومان به عدد ۱ ادامه می یابد سپس با رسیدن به عدد ۰ مقدار ۱ برگشت داده می شود.

مراحل محاسبه فاکتوریل عدد در جاوا اسکریپت:

محاسبه فاکتوریل یک عدد

این فراخوانی بازگشتی را می توان در مراحل زیر توضیح داد:

  • factorial(3) مقدار ۳* factorial(3) را برمیگرداند.
  • factorial(2) مقدار ۳*۲* factorial(1) را برمیگرداند.
  • factorial(1) مقدار ۳*۲*۱* factorial(0) را برمیگرداند.
  • factorial(0) مقدار ۳*۲*۱*۱ را برمیگرداند.

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

turned_in,

چرب زبان

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


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

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

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

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

فهرست