EN

Search
Close this search box.

موستانگ، وحشیِ دوست داشتنی

گزاره های شرطی

جاوا از متغیرهای بولین برای بررسی گزاره های شرطی استفاده می کند. بدین معنی که وقتی یک گزاره شرطی بررسی می شود، یک مقدار بولین یعنی true یا false برگردانده می شود. در این درس با موستانگ همراه باشید تا با چند نوع از گزاره های شرطی مهم در جاوا آشنا شوید.

گزاره های شرطی در جاوا - موستانگ
گزاره های شرطی در جاوا – موستانگ

 

 

آشنایی با گزاره های شرطی

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

int a = 4;
boolean b = a == 4;

if (b) {
    System.out.println("It's true!");
}

در اینجا یک متغیر عددی بنام a تعریف شده و مقدار 4 به آن اختصاص داده می شود. سپس متغیر بولین b تعریف می شود. آنگاه بررسی می شود که آیا مقدار متغیر a برابر 4 است یا خیر و نتیجه این مقایسه در متغیر b ذخیره شده و اگر پاسخ مثبت باشد، عبارتی با این عنوان “که پاسخ درست است!” نمایش داده می شود (اگر عملگرها و دستوراتی که در این چند خط کد نوشته شده گیجتان می کند، نگران نباشید. هدف از این مثال، تنها آشنایی بصری شما با نحوه نوشتن گزاره های شرطی است. در ادامه هر کدام از این عملگرها شرح داده خواهند شد).

مثال بالا تنها برای بهتر توضیح دادن ماجرا بود. اما ما معمولاً جواب یک گزاره شرطی را در یک متغیر بولین نمی ریزیم. بنابرین از عبارتی کوتاه شده بگونه زیر استفاده می کنیم (این قطعه از کد نیز، دقیقاً همان کار کد قبلی را انجام می دهد، اما بسیار خلاصه تر شده است):

int a = 4;

if (a == 4) {
    System.out.println("Ohhh! So a is 4!");
}

 

عملگرهای بولین

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

int a = 4;
int b = 5;
boolean result;
result = a < b;             // آیا متغیر اول از دومی کوچکتر است؟ پاسخ: درست
result = a > b;             // آیا متغیر اول از دومی بزرگتر است؟ پاسخ: غلط
result = a <= 4;            // آیا متغیر کوچکتر مساوی 4 است؟ پاسخ: درست
result = b >= 6;            // آیا متغیر بزرگتر مساوی 6 است؟ پاسخ: غلط
result = a == b;            // آیا متغیر اول با دومی مساوی است؟ پاسخ: غلط
result = a != b;            // آیا متغیر اول با دومی مساوی نیست؟ پاسخ: درست
result = a > b || a < b;    // عملگر "یا"، پاسخ: درست (یکی از گزاره ها هم درست باشد، پاسخ درست است)
result = 3 < a && a < 6;    // (تنها اگر هر دو گزاره درست باشد، پاسخ درست است) عملگر "و"، پاسخ: درست
result = !result;           // (مقدار متغیر بولین را برعکس می کند، یعنی غلط را درست و درست را غلط می کند) عملگر "نفی"، پاسخ: غلط

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

 

گزاره شرطی if – else

این گزاره بسیار ساده است. در واقع if بررسی می کند که آیا پاسخ عبارت داخل پرانتز (اصطلاحاً شرط if) درست است یا غلط. و اگر پاسخ درست باشد، کد مابین دو {} را اجرا می کند و اگر نه، هیچ کدی اجرا نمی شود و اجرای برنامه بعد از {} ادامه می یابد.

if (a == b) {
    // a and b are equal, let's do something cool
}

همچنین می توانیم بعد از if یک دستور else قرار دهیم (در اینصورت اگر شرط برقرار بود، کدهای مابین دو براکتِ پس از if و اگر شرط برقرار نبود، کدهای مابین دو براکتِ پس از else اجرا می شوند).

if (a == b) {
    // We already know this part
} else {
    // a and b are not equal... :/
}

لازم نیست حتماً گزاره if – else در چندین خط به همراه {} باشد، ممکن است تنها در یک خط باشد و بنابرین بدون {} نوشته شود:

if (a == b)
    System.out.println("Another line Wow!");
else
    System.out.println("Double rainbow!");

نکته: اگر چه ممکن است روش بالا برای کوتاه کردن کد سودمند باشد، اما ما قویاً توصیه می کنیم که افراد مبتدی از این روش استفاده نکنند و همیشه از روش کامل تر به همراه {} استفاده کنند. این نکته برای تمامی دستوراتی که قابل کوتاه شدن به یک خط کد هستند (نظیر for, while و غیره) نیز صدق می کند.

روشی دیگر برای نوشتن گزاره if – else در یک خط کد وجود دارد : استفاده از عملگر ؟:

(در این مثال، 2 خط بالایی از برنامه با 5 خط پایینی معادل است)

int a = 4;
int result = a == 4 ? 1 : 8;

// result will be 1
// This is equivalent to
int result;

if (a == 4) {
    result = 1;
} else {
    result = 8;
}

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

 

 

عملگر == و equals

همان طور که در ابتدای درس دیدیم، عملگر == ، تساوی دو متغیر را بررسی می کند. اگرچه، این عملگر در مورد شیئ ها اندکی متفاوت تر از تایپ های اولیه عمل می کند. وقتی که چند شیئ داریم و می خواهیم بررسی کنیم که با هم برابر هستند یا نه، عملگر “==” می گوید که آیا آن ها یکی هستند. (آدرسشان یکی است یا نه). اگر می خواهید ببینید که از لحاظ منطقی برابرند یا نه (مقدارشان یکی است یا نه)، باید از تابع equals بر روی شیئ استفاده کنید. به مثال زیر توجه کنید:

String a = new String("Wow");
String b = new String("Wow");
String sameA = a;

boolean r1 = a == b;      // This is false, since a and b are not the same object
boolean r2 = a.equals(b); // This is true, since a and b are logically equals
boolean r3 = a == sameA;  // This is true, since a and sameA are really the same object

در درس های بعدی بیشتر با اشیاء آشنا خواهید شد و مفهوم این موضوع برایتان ملموس تر خواهد شد.

 

در نهایت

[*] در این درس، با چند گزاره شرطی مهم در جاوا آشنا شدید و با مثال های مختلف مشاهده کردید که چطور می توان از آن ها استفاده کرد. با موستانگ در درس بعدی همراه باشید تا شما را با یکی از مهمترین تایپ های غیر پایه جاوا بنام آرایه آشنا کند.

[*] اگر هر گونه سوال و یا ابهامی در این درس برایتان پیش آمده، می توانید در پایین این نوشته و در قسمت دیدگاه ها آن را ثبت کرده و با موستانگ به اشتراک بگذارید. همچنین پیشنهاد می کنیم که برای تمرین کد نویسی، حتماً سری به مانِژ بزنید.

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

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