دستور switch در جاوا

دستور switch در جاوا

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


دستور switch چگونه کار میکند؟

دستور switch به شما اجازه میدهد که یک متغیر را با یکلیست از مقادیر مختلف تست کنید و ببینید با آنها برابر است یا نه. به هر کدام از مقادیری که گفتیم یک case گفته میشود. متغیری هم که داریم با هرکدام از این case ها ارزیابی میشود.


قواعد نوشتاری (Syntax) دستور switch

برای نوشتن یک دستور switch‌ میتوانید از الگوی زیر استفاده کنید.

switch(expression) {
   case value :
      // Statements
      break; // optional

   case value :
      // Statements
      break; // optional

   // You can have any number of case statements.
   default : // Optional
      // Statements
}

قوانین زیر را باید در نوشتن این دستور رعایت کنید:

  • متغیر هایی که در دستور switch استفاده میشوند میتوانند فقط integer، مدل های دیگر integer (byte، short، char)، string ها و enum ها.
  • شما میتوانید درون switch هر تعدادی که میخواهید از case استفاده کنید. بعد از هر case باید مقداری که میخواهید متغیر با آن ارزیابی بشود را بنویسید و سپس یک نقطه ویرگول بگذارید.
  • نوع داده ای که جلوی case مینویسید باید با نوع داده ای متغیری که میخواهید بسنجید یکسان باشد و باید یک literal یا constant باشد.
  • وقتی که متغیر شما با یکی از case ها برابر باشد، دستوراتی که زیر آن Case نوشته شده اند اجرا میشوند تا جایی که به دستور break برسد.
  • وقتی که به دستور break میرسد، اجرای دستور switch از بین میرود و کنترل اجرای برنامه به دستوراتی که بعد از switch نوشته اید منتقل خواهند شد.
  • لازم نیست حتما همه Case ها دارای break باشند. اگر دستور break را ننویسید، کنترل برنامه به case های بعدی منتقل میشود تا زمانی که به یک دستور break برسد.
  • دستور switch میتواند یک case با نام default هم داشته باشد که باید آخرین مورد نوشته بشود. دستوراتی که در این قسمت مینویسید تنها در صورتی که مقدار متغیر برابر با هیچکدام از case ها نباشد، اجرا خواهند شد. درون default نیازی نیست از break استفاده کنید.

دیاگرام اجرا

دیاگرام دستور switch

مثال

public class Test {

   public static void main(String args[]) {
      // char grade = args[0].charAt(0);
      char grade = 'C';

      switch(grade) {
         case 'A' :
            System.out.println("Excellent!");
            break;
         case 'B' :
         case 'C' :
            System.out.println("Well done");
            break;
         case 'D' :
            System.out.println("You passed");
         case 'F' :
            System.out.println("Better try again");
            break;
         default :
            System.out.println("Invalid grade");
      }
      System.out.println("Your grade is " + grade);
   }
}

در دستور switch که در مثال بالا نوشته ایم، متغیر grade که از نوع char میباشد را میخواهیم بررسی کنیم. اتفاقی که در اینجا می افتاد این است که مقدار grade با case هایی که در ادامه نوشته ایم مقایسه میشود. سپس اگر با هرکدام از این مقادیر برابر بود، دستورات مربوط به همان case اجرا میشوند تا به یک دستور break برسیم. از روی خروجی میتوانید حدس بزنید که کدام دستورات اجرا شده اند.

کدهای بالا خروجی زیر را تولید میکنند.


خروجی

Well done
Your grade is C

سوالات خودتان را بپرسید

اگر در مورد دستور switch سوالی دارید یا جایی کامل توضیح داده نشده است، همه سوالات خودتان را در قسمت نظرات بپرسید تا به سرعت به آنها پاسخ بدهیم.

درباره نویسنده

3 در مورد “دستور switch در جاوا”

  1. سلام میخواستم ببینم اگه توی کیس های سوییچ بخوام از متغیر یا عمل های مقایسه مثل x>100 استفاده کنم چیکارباید بکنم؟ چون تو کیس ها باید تک مقدار بنویسیم ارور میده

    1. سلام دوست عزیز.
      این کار ممکن نیست، چون شما باید یک مقدار ثابت رو به Case بفرستید. برای اینکار میتونین با استفاده از if و else if چیزی که میخواین رو پیاده سازی کنین.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

اسکرول به بالا