دستورات شرطی در جاوا: آموزش کامل if، else و switch

دستورات شرطی در جاوا: آموزش کامل if، else و switch

پیش نیاز

دستورات شرطی (selector ها) در جاوا برای بررسی true یا false بودن یک عبارت مورد استفاده قرار میگیرند شرط یکی از مفاهیم مهم و ضروری در برنامه نویسی است.

متغیر boolean در جاوا دارای دو مقدار true یا false است و به صورت زیر تعریف میشه:

boolean v0 = true;
boolean v1 = false;
                        

پیش نیاز این مطلب دو مطلب عملگرها و انواع داده و متغیر است، برای مطالعه میتونید بهشون مراجعه کنید.

دستور شرطی if–else

با دستور شرطی if-else در جاوا به بررسی true یا false بودن یک عبارت می پردازیم if به زبان فارسی یعنی اگر.

فرم کلی:

if(condition == true){
    //TODO execute codes
}else {
    //TODO execute codes
}
                        

در عبارت بالا اگر شرط داخل پرانتز برابر با true بود کد های داخل بدنه ی if رو اجرا میکنه، کلیدواژه else به معنی در غیر این صورت، یعنی در غیر اینصورت کد های داخل بدنه ی else رو اجرا کن

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

if(condition){
   //TODO execute codes
}else{
   //TODO execute codes
}
                        

if های زنجیره ای

میتونیم به طور زنجیره ای چند if رو به هم وصل کنیم.

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

if(condition0){
    //TODO execute codes
}else if(condition1){
    //TODO execute codes
}else if(condition2){
    //TODO execute codes
}else if(condition3){
    //TODO execute codes
}else{
    //TODO execute codes
}
                        

مثال

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

Scanner input = new Scanner(System.in);

System.out.println("Enter a weight: ");
double weight = input.nextDouble();

System.out.println("Enter height: ");
double height = input.nextDouble();

double bmi = weight / (height * height);

System.out.println("BMI is " + bmi);

if (bmi < 18.5){
    System.out.println("Underweight");
}else if (bmi < 25){
    System.out.println("Normal");
}else if (bmi < 30){
    System.out.println("Overweight");
}else {
    System.out.println("Obese");
}
                        

if های تو در تو

میتونیم داخل هر if یک if دیگه تعریف کنیم:

if(condition0){
    //TODO execute codes
    if(condition1){
        //TODO execute codes
        if(condition2){
            //TODO execute codes
        }
    }
}
                        

دستور سوئیچ (switch)

اگه چندین مورد برای بررسی داشته باشیم میتونیم به جای استفاده از if های زنجیره ای از دستور سوئیچ (switch) در جاوا استفاده کنیم.

توجه

از جاوا ۸ به بعد ویژگی های جدیدی به سوییچ اضافه شده؛ در اینجا کاربرد پایه ای این دستور رو بررسی میکنیم؛ میتونید برای مطالعه ی بیشتر به تغییرات سوییچ تا jdk 17 مراجعه کنید.

مثال:

Scanner input = new Scanner(System.in);
System.out.println("Enter number of day week (between 1 - 7");
int dayNumber = input.nextInt();

switch (dayNumber){
    case 1: System.out.println("Saturday");break;
    case 2: System.out.println("Sunday"); break;
    case 3: System.out.println("Monday"); break;
    case 4: System.out.println("Tuesday"); break;
    case 5: System.out.println("Wednesday"); break;
    case 6: System.out.println("Thursday");break;
    case 7: System.out.println("Friday"); break;
    default:
    System.out.println("Day is not in range");
}
        

در مثال بالا کاربر عدد یکی از روز های هفته رو وارد میکنه اگه مطابق با هرکدوم از case ها بود برنامه اسم اون روزو نمایش میده از کلید واژه ی break برای خارج شدن از سوئیچ (switch) در جاوا استفاده میشه، چون بعد از برابر بودن متغیر با یک case، علاوه بر کد های مربوط به case برابر با متغیر کد های مربوط به case های بعدی هم به صورت خودکار اجرا میشن در این مثال بعد از هر case عبارت System.out.println() اجرا میشه، از default زمانی استفاده میکنیم که متغیر با هیچ کدوم از case ها برابر نباشه و برنامه کدهای مربوط به default رو اجرا میکنه.

عبارت شرطی

عبارت شرطی در جاوا سه بخش داره، بخش اول شرطه که بررسی میکنه آیا شرط درسته یا خیر، اگه شرط درست باشه قسمت سمت چپ : رو به عنوان مقدار درنظر می گیره و اگه شرط false باشه قسمت سمت راست : رو به عنوان مقدار در نظر میگیره.

myVariable := condition ? return_if_true : return_if_false
          

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

Scanner input = new Scanner(System.in);
System.out.println("Enter number1: ");
int num1 = input.nextInt();

System.out.println("Enter number2: ");
int num2 = input.nextInt();

int max = (num1 > num2) ? num1 : num2;

System.out.println("number 1 is " + num1 + " number 2 is " + num2 + " maximum is " + max);
                        

خلاصه

  • از دستورات شرطی برای بررسی true یا false بودن یک یا چند عبارت شرطی استفاده میکنیم.
  • دستور شرطی if-else رو میتونیم به صورت تکی، زنجیره ای و یا تودرتو بنویسیم.
  • از عملگر های منطقی برای تغییر مقدار boolean استفاده میکنیم.
  • اگه چندین مورد برای بررسی داشتیم میتونیم بجای if های زنجیره ای از دستور switch در جاوا استفاده کنیم.

بازخورد و دیدگاه‌ ها

اولین نفری باشید که در این صفحه نظر می‌دهید

notifications برای اطلاع از جدیدترین مطالب و پست های مرتبط، عضو کانال تلگرام ما بشید.

arrow_drop_up
کپی شد!