در این پست قصد داریم به یادگیری عبارات شرطی یا همان If ، Else و switch در زبان جاوا بپردازیم 

جاوا از دستورات شرطی منطقی معمول ریاضیات پشتیبانی می کند

  • کمتر از : a < b
  • کمتر یا مساوی با : a <= b
  • بزرگتر از : a > b
  • بزرگتر یا مساوی با : a >= b
  • برابر با a == b
  • مساوی نیست با : a != b

شما می توانید از این دستورات شرطی برای انجام اقدامات متنوع در تصمیم گیری های مختلف استفاده کنید

جاوا عبارات شرطی زیر را دارد

  • اگر شرط مشخص شده درست است، از if برای تعیین یک بلوک کد برای اجرا استفاده کنید
  • اگر همان شرط نادرست است، از else برای تعیین یک بلوک کد برای اجرا استفاده کنید
  • اگر شرط اول نادرست است، از else if برای تعیین یک شرط جدید برای آزمایش استفاده کنید
  • از switch برای تعیین بسیاری از بلوک های جایگزین کد جهت اجرا استفاده کنید

از دستور if استفاده کنید تا بلوکی از کد جاوا را مشخص کنید تا در صورت درست بودن یک شرط اجرا شود

if (condition) {
  // اگر شرط درست باشد، بلوک کد اجرا می شود
}

condition همان وضعیتی است که اگر درست باشد کدهای داخل شرط اجرا می شود و اگر غلط باشد اجرا نخواهند شد

یک مثال کاربردی 

if (20 > 18) {
  System.out.println("20 is greater than 18");
}

در برنامه فوق بررسی میکنیم که ببینیم آیا عدد بیست از عدد هجده بزرگتر است یا نه ، و در صورت درست بودن دستور داخل شرط که به معنای 20 بزرگتر از 18 است را نمایش می دهیم

از عبارت else استفاده کنید تا یک بلوک کد را مشخص کنید تا در صورت نادرست بودن شرط اجرا شود

int time = 20;
if (time < 18) {
  System.out.println("Good day.");
} else {
  System.out.println("Good evening.");
}

در کد بالا یک متغیر از نوع عدد صحیح با مقدار 20 و نام time ایجاد کرده ایم ، سپس در شرط بررسی کرده ایم که آیا time از 18 کوچکتر است یا خیر ؟ در صورتی که کوچکتر بود عبارت Good day و در صورتی که درست نباشد کد else اجرا میشود و عبارت Good evening نمایش داده خواهد شد

حال اگر شرط اول نادرست است از دستور else if برای تعیین یک شرط جدید استفاده کنید به مثال زیر توجه کنید

int time = 22;
if (time < 10) {
  System.out.println("Good morning");
} else if (time < 20) {
  System.out.println("Good day");
} else {
  System.out.println("Good evening");
}

در خط اول متغیر time را مقدار دهی میکنیم و در خط بعدی شرط را بررسی میکنیم تا ببینیم آیا از عدد 10 کوچکتر است و در صورت درست بودن با دستور System.out.println عبارت Good morning را نمایش میدهیم اما در صورتی که این شرط اشتباه باشد یک شرط جدید را با دستور else if تعریف میکنیم که مقدار متغیر time را با عدد 20 مقایسه میکند و اگر از آن کوچکتر باشد عبارت Good day را چاپ میکند و در نهایت اگر هیچکدام از شرط ها درست نباشند بخش else اجرا میشود

به نظر شما خروجی کد بالا کدام است ؟ cool

خروجی کد بالا Good evening خواهد بود زیرا عدد 22 کوچکتر از 10 و 20 نمی باشد

از دستور switch برای انتخاب یکی از چندین بلوک کد جهت اجرا استفاده می کنیم ، ساختار کلی دستور switch به شکل زیر می باشد

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

عبارت expression در switch یک بار ارزیابی می شود

مقدار عبارت با مقادیر هر مورد case مقایسه می شود

اگر مطابقت وجود داشته باشد، بلوک کد مرتبط اجرا می شود

کلیدواژه های break و default اختیاری هستند و در ادامه این فصل ان شاء الله توضیح داده خواهند شد

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

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;
}

ابتدا یک متغیر تعریف کرده ایم و آن را با عدد 4 مقدار دهی کرده ایم

سپس از switch برای بررسی day که نام این متغیر می باشد استفاده کرده ایم

case 1 در صورتی اجرا خواهد شد که عدد داخل متغیر day با آن برابر باشد که چون در مثال ما اینطور نیست این کد همینطور ادامه پیدا خواهد کرد تا به case 4 برسد

بعد از اجرای این دستور خروجی این کد Thursday به معنای پنج شنبه خواهد بود

کلید واژه break

وقتی جاوا به یک کلمه کلیدی break می رسد، از بلوک سوئیچ خارج می شود. این کار اجرای کدها و تست های موردی بیشتر در داخل بلوک را متوقف می کند ، وقتی یک همخوانی داشتن پیدا شد و کار تمام شد، وقت استراحت است. نیازی به تست بیشتر نیست

نکته : break می تواند زمان زیادی را برای اجرا صرفه جویی کند زیرا اجرای بقیه کدهای موجود در بلوک سوئیچ را نادیده می گیرد

کلید واژه default

کدی را برای اجرا در صورت عدم تطابق عبارت با هیچ کدام از case ها به صورت پیشفرض مشخص می کند

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

در کد بالا به خاطر اینکه متغیر day با هیچکدام از case های 6 یا 7 همخوانی و تطابق ندارد به سراغ default رفته و عبارت Looking forward to the Weekend را نمایش می دهد