ساختار Switch در زبان C

به جای نوشتن چندین کد else ,if یا else if می توانید از عبارت switch استفاده کنید.

با دستور switch می توان بلوک های مختلف کد را داخل بلوک اصلی اجرا کرد، به طوری که در صورت صحیح بودن شرط ( true )، بلوک کد اصلی و در صورت اشتباه بودن شرط ( false )، بلوک دیگری اجرا شود و از طرفی در انتهای کد، در هر دو صورت صحیح یا غلط بودن شرط ( true یا false )، عبارت ( default ) اجرا خواهد شد.

switch (expression) {
  case x:
    // بلوک کد
    break;
  case y:
    // بلوک کد
    break;
  default:
    //بلوک کد
}
  • عبارت switch تنها یک بار اجرا می شود.
  • تمامی مقادیر و دستورها (بلوک های داخلی کد) به ترتیبی که نوشته شده اند بررسی می شوند.
  • اگر در حین بررسی بلوک کد، مطابقتی با دستور نوشته شده باشد، همان بلوک اجرا می شود.
  • در صورت مطابق نبودن شرط از عبارت break استفاده کرده و از آن بلوک کد خارج خواهد شد.
  • دستور default در هر شرایطی بصورت پیشفرض در انتهای بلوک کد اجرا می شود.

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

int day = 4;
  
switch (day) {
  case 1:
    printf("Monday");
    break;
  case 2:
    printf("Tuesday");
    break;
  case 3:
    printf("Wednesday");
    break;
  case 4:
    printf("Thursday");
    break;
  case 5:
    printf("Friday");
    break;
  case 6:
    printf("Saturday");
    break;
  case 7:
    printf("Sunday");
    break;
}

عبارت break 

وقتی کامپایلر زبان C به کلمه break می رسد، از بلوک switch خارج می شود.

این کار از تکرار کدهای تستی دیگر جلوگیری می کند، یعنی وقتی یک بلوک کد (داخل کد اصلی) را با مقدار داده شده مطابقت دهد، آن بلوک را اجرا و سپس توسط عبارت break از کل بلوک switch خارج می شود.

در نتیجه با این کار از اجرا شدن کدهای اضافی دیگر صرف نظر کرده و سرعت اجرا برنامه را بالا می برد.

عبارت default

فرقی نمی کند که کدهای بدنه switch اجرا شود یا خیر، در هر صورت در انتهای خط برنامه، کدهای بلوک default اجرا خواهد شد.

int day = 4;
  
switch (day) {
case 6:
  printf("Today is Saturday");
  break;
case 7:
  printf("Today is Sunday");
  break;
default:
  printf("Looking forward to the Weekend");
}

 

نکته: جایگاه عبارت کلیدی default در انتهای بلوک switch بوده و باید در آخر خط برنامه اجرا شود.

 

تمرین

جاهای خالی را با عبارت مناسب پر کنید.

int day = 2;
switch ( ) {
1:
printf("Monday");
;
:
printf("Sunday");
;
}
مشاهده پاسخ
توسعه دهندگان
امین آهن کوبی