زبان برنامه نویسی سی/دستور continue: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جزبدون خلاصۀ ویرایش |
بدون خلاصۀ ویرایش |
||
خط ۵:
دستور '''continue''' که با یک سمی کالُن « ; » ( نقطه ویرگول ) پایان مییابد و تنها به صورت « ;continue » نوشته میشود که به پارسی میشود « ادامه بده » در زبان C این معنا و کاربرد را دارد که اجرای حلقه را یک بار از قلم میاندازد و اجرای حلقه را ادامه میدهد . بنابراین دستور continue فقط داخل حلقهها قابل استفاده است و البته فقط داخل حلقه خود عمل میکند ؛ یعنی اگر ۳ حلقه تو در تو تعریف کنید و در سومین حلقه که داخلیترین حلقه میباشد از دستور continue استفاده کنید فقط بر روی همان حلقه ، یعنی حلقه سوم و داخلیترین حلقه ، عمل میکند
در حلقههای while و do while دستور continue از جایی که نوشته شده تا انتهای حلقه را نادیده میگیرد
دقت کنید که شما میتوانید با دستورهای if ( دستور if و else if و else ) دستور continue را شرطی کنید تا در صورتی که شرط یا شرطهایی برقرار بودند حلقه نادیده گرفته شود و ادامه کدهایی که داخل حلقه نوشته شدهاند از قلم بیافتند و حلقه ادامه پیدا کند که این متداولترین روش استفاده از دستور continue میباشد . بنابراین به جای استفاده از دستور break ( که حلقه را میشکند ) و ایجاد حلقههای دیگر برای نوشتن برنامه خود میتوانیم در زبان C و خانواده آن و بسیاری از زبانهایی که از C الگو گرفتهاند داخل حلقه خود با دستور continue در صورتی که شرط یا شرطهایی برقرار بودند از اجرای حلقه جلوگیری کنیم و حلقه از جایی که continue را نوشتهایم تا انتهای حلقه را نادیده بگیرد . پس در واقع ، ما با دستور continue استثناء یا استثناءهایی را برای حلقه خود ایجاد میکنیم
خط ۳۲:
در مثال بالا اعداد فرد ، اسثناء شدهاند تا در خروجی خطدستوری چاپ نشوند . در فایل برنامه خود ابتدا با دستور مستقیم include فایل سرآیند stdio را ضمیمه برنامه نمودهایم . تابع اصلی برنامه را یعنی main که کنترل تمام برنامه را بر عهده دارد را نوشتهایم ( که البته تنها تابع برنامه ماست ) و داخل تابع main یک متغیر از نوع صحیح با مقدار 0 تعریف کردهایم ( که البته محلی است اما در تمام تابع قابل دسترسی میباشد ) یک حلقه for ایجاد کردهایم که از 0 تا 10 میشمارد و بدنه خود را اجرا و تکرار میکند اما داخل حلقه با دستور شرطی if نوشتهایم اگر باقیمانده تقسیم عدد ذخیرهشده در i بر 2 مساوی با 0 نبود ( که یعنی یک عدد فرد است ) بقیه حلقه نادیده گرفته شود و در غیر این صورت در خروجی خطدستوری مقدار متغیر i چاپ شود و خط شکسته شود که از 0 شروع کردهایم و چون تقسیم بر 2 باقیماندهای ندارد حلقه اجرا میشود و یکی یکی به مقدار i اضافه میشود ( که اگر شرط برقرار نمیشد i یک واخد افزایش پیدا میکرد و مرحله step یا همان عبارت تغییر دهنده modifier-expression به اجرا گذاشته میشد ) اما اعدادی که فرد هستند با دستور continue از قلم میافتند و حلقه نادیده گرفته میشود و برنامه کامپایل شده اعداد 0 , 2 , 4 , 6 , 8 , 10 را در خروجی خطدستوری در خطوط جداگانه نمایش خواهد داد . بنابراین همان طور که گفتیم اعداد فرد را اسثثناء کردیم
مثال :
{{چپچین}}
<source lang=C#>
#include <stdio.h>
int main()
{
int i = 0;
while(i<=100)
{
i++;
if((i%5)==0)
continue;
else
printf("%d\n", i);
}
return 0;
}
</source>
{{پایان چپچین}}
مثال بالا مثل بازی هوپ میماند . اعداد 1 تا 101 نمایش داده میشوند اما اعدادی که مضرب 5 باشند نمایش داده نخواهند شد . اما اگر میخواهید بدانید چرا علیرغم اینکه شرط while تا عدد 100 میباشد اما کامپایلر عدد 101 را هم نمایش میدهد ، باید به نکته ابتدایی این مبحث مراجعه کنید که میگوید اگر حلقههای while و یا do while متغیر یا متغیرهایی در شرط خود داشته باشند که داخل حلقه آن متغیرها عملوند واقع شوند ؛ همانند حلقه for مرحله آنها یک بار به اجرا در میآید بنابراین اعداد تا 101 ادامه مییابند و سپس حلقه متوقف میشود ( این قطعه برنامه نیز همانند قطعه برنامه بالا و قبلی میماند با این تفاوت که شرط شده اگر باقی مانده تقسیم عدد بر ۵ مقدار ۰ داشت ( یعنی تقسیمپذیر بر ۵ بود ) بقیه کدها را نادیده بگیر که در نهایت مقدار متغیر i در خروجی چاپ نمیشود
[[رده:زبان برنامه نویسی سی]]
|