زیر برنامه ها: رویه ها و عملکردها - 2


تابع یک زیربرنامه است که یک نتیجه (شماره، خط کاراکتر و غیره).

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

تابعی که میانگین حسابی دو عدد صحیح را برمی گرداند به این صورت است:
<پیش> میانگین شناور(int a, int b) { میانگین شناور = (a + b) / 2.0; بازگشت اوت؛ } باقی مانده است که نحوه فراخوانی این تابع در برنامه اصلی را بفهمیم. شما نباید یک تابع را به همان روشی فراخوانی کنید: <پیش> میانگین(10، 5); مقدار بازگردانده شده توسط تابع از بین خواهد رفت. گویی اجناس فروشگاه اینترنتی به کسی داده نشده بلکه دور ریخته شده است. بعید است که مشتری آن را دوست داشته باشد.

ذخیره کردن نتیجه در یک متغیر (یا نمایش آن بر روی صفحه) صحیح تر است:
<پیش> float a = average(10, 5); <پیش> Console.WriteLine(average(10, 5));< /code>

اغلب، برنامه نویسان از توابع بولی استفاده می کنند که مقادیر بولی را درست یا نادرست برمی گرداند (true یا نادرست).
چنین توابعی برای بررسی یک ویژگی مفید هستند.
دو مثال از نوشتن یک تابع منطقی را در نظر بگیرید که یک عدد را برای یکنواختی بررسی می کند
<بدن>
بهترین راه:
نتیجه بیان
n % 2 == 0
درست (درست) یا نادرست (نادرست) خواهد بود
نیازی به نوشتن دستور شرطی نیست.
این کار را نکنید.
البته، می‌توانید این کار را انجام دهید، اما این ورودی طولانی‌تر است.
<پیش> bool isEven(int n) { بازگشت (n % 2 == 0); } <پیش> bool isEven(int n) { اگر (n % 2 == 0) { بازگشت درست؛   } دیگری { بازگشت نادرست;   } }

و آخرین نکته در مورد کار با توابع و رویه ها: تعداد توابع و رویه ها در برنامه محدود نیست. علاوه بر این، یک زیربرنامه می تواند زیربرنامه دیگری و حتی خودش را فراخوانی کند.
همچنین پس از رسیدن برنامه به return در تابع، برنامه بلافاصله اجرای تابع را متوقف می کند و مقدار را برمی گرداند.
یعنی مثال دوم جدول را نیز می توان به این شکل کوتاه کرد:
bool isEven(int n)
{
    اگر (n % 2 == 0) {
        درست را برگردانید
    
    بازگشت نادرست؛
}