سه شنبه, 18 ارديبهشت 1403

 



موضوع: دستورات break ,swich,goto

دستورات break ,swich,goto 9 سال 11 ماه ago #78009

دستور break :

کلمه کلیدی break به معنی شکستن می باشد، که در زبان سی همان معنی شکستن حلقه یا خارج شدن از حلقه می باشد. وقتی برنامه به این دستور برسد از ساختار حلقه خارج می شود و دستورات بعدی را اجرا می کند. منظور دستورات داخل {} می باشد از این دستور بیشتر در حلقه switch استفاده می شود که در ادامه توضیح کامل می دهیم. ابتدا یک مثال از break :

char i,b;
while (1) {
i++;
if (i==23) break;
}
b=i+6;

در این مثال دو متغییر i , b تعریف شده و بعد یک حلقه بی نهایت نوشتیم که در هر بار اجرای حلقه یک واحد به متغییر i اضافه می شود و بعد از آن یک دستور شرطی نوشتیم و گفتیم که اگر متغییر i برابر با 23 شد دستور break را اجرا کن که بعد از اجرا شدن آن برنامه از حلقه بیرون می آید و اولین دستور بعد از { را اجرا می کند که در اینجا متغییر i را با عدد 6 جمع می کند در متغییر b ذخیره می کند. که حاصل اون هم بابر با 29 می باشد.

دستور switch :

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


switch (متغییر) {
case مقدار1 :
{ مجموعه دستورات1 };
case مقدار2 :
{ مجموعه دستورات2 };
case مقدار3 :
{ مجموعه دستورات3 };

default:
{ مجموعه دستورات };
}

برای روشن تر شدون موضوع به مثال زیر توجه کنید:

switch (i) {
case 3:
b=5; break;
case 6:
b=7; break;
case 2:
b=7; break;
default:
b=55;
}

در این مثال ابتدا متغییر i انتخاب می شود و بعد 3 حالت یا کیس مختلف براش در نظر گرفتیم. نوشتیم که اگر توی متغییر i مقدار 3 هست بیا و عدد 6 را توی متغییر b قرار بده و از حلقه خارج شو یعنی حالت های بعدی رو دیگه امتحان نکن. خوب اگر در این مرحله i برابر با 3 نبود دستور break اجرا نخواهد شد و حالت بعدی امتحان می شود. و این کار همین طور ادامه دارد تا مقدار یکی از حالت ها با مقدار متغییر i برابر باشد، که در این صورت دستور break هم اجرار خواهد شد و دیگه حالت های بعدی امتحان نمی شوند و برنامه از حلقه خارج می شود. حال ممکن که هیج یک از حالت ها با مقدار متغییر برابر نباشد!! در این صورت دستور default اجرا می شود (به معنی مقدار پیش فرض) و متغییر b مقدار پیش فرض 55 را می گیرد. البته نوشتن دستور default اختیاری می باشد و شما می توانید ننویسید.

نکته:
1.در جلوی دستور case فقط می توانیم مقدار ثابت قرار دهیم یعنی نمی توانیم یک متغییر قرار دهیم.
2.اگر در یکی از حالت ها یا همون case دستور break را قرار ندهیم با مقدار حالت بعدی OR می شود.

دستور goto :

از این دستور برای رفتن به یا به عبارتی پرش به یک لیبل یا برچسب می باشد. فرم کلی آن به صورت زیر می باشد:

goto نام برچسب ;
نام برچسب:

مثال:

while (1) {
i++;
if (i==56) goto picpars;
}
picpars:
دستورات;

ابتدا تشکیل یک حلقه بی نهایت و یعد هم افزایش یک واحدی به متغییر i و بعد تست یک شرط که اگر متغییر i برابر با 56 باشد از حلقه خارج می شود و به لیبل picpars پرش می کند و دستورات بعد از آن اجرا می شود.

دستور continue :

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

while (1) {
i++;
if (i==9) continue;
i=i+2;
}

در این مثال ما یک حلقه بی نهایت تشکیل دادیم که در آن ابتدا افزایش یک واحدی به متغییر i اجرا می شود و بعد شرطی تست می شود که اگر محتوای متغییر i برابر با 9 بود دستور بعدی یعنی اضافه کردن عدد 2 به متغییر i اجرا نمی شود. دستور i=i+2 در حلقه همیشه اجرا می شود به جزء یک بار اون هم اگر i برابر با 9 بود این اتفاق می افتد.
مدير دسترسي عمومي براي نوشتن را غيرفعال كرده.
مدیران انجمن: هانیه سلیمانی