آموزش مقدماتی جاوا | Switch

دستور switch

در بخش قبل دستور else if را آموختیم. فرض کنید می خواهیم کدی بنویسیم که اگر متغیر level برابر با عدد 1 بود، کلمه “very easy” چاپ شود، اگر برابر با 2 بود، کلمه “easy”، اگر برابر با 3 بود کلمه “medium” و اگر برابر با 4 بود کلمه “hard” چاپ شود. اگر هیچ کدام از این موارد نبود نیز کلمه “unknown” در خروجی چاپ شود. این کد را باید با چنین دستور else if پی در پی بنویسیم:

int level = 4;
if(level == 1) {
    System.out.println("veryeasy");
} else if(level == 2) {
    System.out.println("easy");
} else if(level == 3) {
    System.out.println("medium");
} else if(level == 4) {
    System.out.println("hard");
} else {
    System.out.println("unknown");
}

در همه مواردی که به این شکل از چندین دستور else if پی در پی برای چک کردن مقدار “یک متغیر” استفاده می شود، می توانیم از دستور جایگزینی به نام switch استفاده کنیم.

 دستور switch به شکل زیر نوشته شده و بر اساس شرط های گوناگون کد مورد نظر را انتخاب کرده و اجرا می کند.

switch(expression) {
  case x:
    // بلوک کد
    break;
  case y:
    // بلوک کد
    break;
  default:
    // بلوک کد
}

به این شکل کار می کند که:

  • متغیر مورد نظر که می خواهیم مقدار آن را چک کنیم جلوی دستور switch نوشته شده و یکبار برداشته می شود.
  • مقدار این متغیر با مقدار هر کدام از case ها مقایسه می شود. دستور case کار همان if و else if ها را انجام می دهد.
  • اگر با هر کدام مطابقت داشت، بلوک کد مرتبط با آن اجرا می شود و پس از اجرا با استفاده از دستور break از switch خارج می شود تا case های بعدی بررسی نشوند.
  • دستورات default کار همان else آخر را می کند که البته اختیاری است.

در مثال زیر، شماره ی روز هفته را به دستور switch می دهیم تا با مطابقت با case های مختلف، نام آن روز از هفته چاپ شود:

int day = 4;
switch (day) {
  case 1:
    System.out.println("Monday");
    break;
  case 2:
    System.out.println("Tuesday");
    break;
  case 3:
    System.out.println("Wednesday");
    break;
  case 4:
    System.out.println("Thursday");
    break;
  case 5:
    System.out.println("Friday");
    break;
  case 6:
    System.out.println("Saturday");
    break;
  case 7:
    System.out.println("Sunday");
    break;
}
// خروجی = "Thursday" (day 4)

 

پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1
  • 2