دستور Return

بهنود محمدی
26 شهريور ۱۴۰۰
سلام جناب هاشمی . خسته نباشید . ببخشید من تمامی منابع رو توی نت خوندم برای پرسش به این سوالم که اصولا دستور Return چه شرح وظیفه ای داره و یعنی چی مقدار یه تابع رو برگشت میده ؟ همه حتی منابع غیر فارسی نوشتند که Return مقدار تابع رو برگشت میده و همین ! اصلا چرا باید برگشتش بده ؟ برگشت یعنی چی و یعنی چی که برگشت میده ؟ به کجا برگشتش میده ؟ اگر تابع فاقد مقدار باشه یعنی دستور Return بی فایده میشه برای اون تابع ؟ برگشت خوردن دقیقا یعنی چی ؟ مگه متغیرهای سراسری در صفحه ی اصلی کد نیستند و توابع ما متغیرهای محلی خودشون رو ندارند ؟ پس دیگه چه نیازی به چیزی جز متغیرها داریم ؟ واقعا هیچ درکی از Return نتونستم داشته باشم .
4149

3 پاسخ
  • محمد هاشمی26 شهريور ۱۴۰۰

    سلام بهنود جان . سلامت باشی . 

    ببین یه مثال از دنیای واقعی برات میزنم .

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

    همین مثال عینن میتونه توی بحث توابع صدق کنه . هر تابع یه وظیفه ای بهش محول شده و  میتونه یک یا چند مقدار دریافت کنه و در ازای دریافت اونها یه عملیات روشون انجام بده و بعنوان خروجی یه چیزی رو تحویل بده . 

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

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

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

  • بهنود محمدی27 شهريور ۱۴۰۰

    خب پس یعنی این وسط دستور Return چیکاره‌ست ؟

    تابع مگه فقط به یه عملیات و یک یا چند تا متغیر ( که بعدا قراره مقدار دهی بشند ) نیاز نداره ؟

    این وسط Return شدن تابع یعنی چه و چه نیازی بهش هست ؟

    یعنی اگر Return نشه چه اتفاقی میفته یا نمیفته توی تابع ؟ ( که تا جایی که تو تمرینات و مثالها دیدم بعضی توابع اصلا دستور Return نمیگیرند ) 

  • محمد هاشمی28 شهريور ۱۴۰۰

    بهنود جان بهترین کاری که میتونی برای درک سیستم بکنی اینه که یه نمونه کد که میدونی چیکار میکنه رو همراه با مدرس بنویسی و شروع بکنی به تغییر دادن و بالا پایین کردن اون کد که الزام یک سری کار هارو درک کنی , سعی کن زیاد تئوریک به مبحث کدنویسی نگاه نکنی , کدنویسی یه عمل اجراییه که حین اجرا درک میشه , خودمونی تر بخوام بهت بگم سعی کن با کد ها بازی کنی و واسه درک قواعد دست به بازی بشی تا اینکه اول از همه چیز سر در بیاری و بعد شروع کنی به نوشتن , اشتباه کن , کد بنویس به قصد اجرا نشدن و ارور دیدن . این رویکردو پیش بگیر بعد از یه مدت میبینی چقدر برنامه نویسی برات ساده تر میشه !