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