یک سوال در مورد return در سی

ali0480

Member
سلام به همه
سوال من این هستش که آیا دستور return در سی به معنای خروج از تابع نیز هستش ؟؟/ یعنی وقتی از دستور return توی تابع های فاکتوریل استفاده می کنیم باعث اتمام چرخش (loop) می شه یا نه ؟ منظورم با مثال می گم که بهتر متوجه بشید :
کد:
int fact (int n)
{
if (n<=1)
return (1);
else
return(n*fact(n-1));
}

به تابع بالا دقت کنید بحث :mad: :-?من و استاد ساختمان داده ام سر این هستش که من می گم تابع بدون استفاده از else هم کارش رو بدرستی انجام میده چون اگه شرط بر قرار نباشه دستور بدی اجرا می شه و اگه بر قرار هم باشه با اون return توی if حلقه break میشه و تابع fact شروع می کنه به برگشت ولی استادمون می گه نه return داخل if همچین خاصیتی رو نداره یعنی کلا return خاصیت break کردن نداره . حالا شما میگید حرف کدوم یکی از ما درسته ؟؟؟؟
با این که من برنامه رو بدون else هم توی سی نوشتم و جواب دادش .
 

the_king

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

aminoia

Member
البته اینجا باعث می شه که خوانایی کد بیشتر بشه
البته کامنت گذاشتن همیشه بهتره
 

جدیدترین ارسال ها

بالا