آشنایی با دستور شرطی if در زبان برنامه نویسی جاوا

سیده آمین ارمان

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2016/05/10
ارسالی ها
1,730
امتیاز واکنش
20,744
امتیاز
795
محل سکونت
البرز
زمانی که ما یک برنامه جاوا می نویسیم، یکسری دستورات به کامپیوتر خود داده که کامپیوتر ما با توجه به تقدم و تاخر این دستورات آن ها را یکی پس از دیگری انجام می دهد (اصطلاحاً به این فرایند انجام دستورات الگوریتم گفته می شود و جالب است بدانیم که واژه الگوریتم از روی نام دانشمند معروف ایرانی خوارزمی گرفته شده است.) زمان هایی در برنامه نویسی برای ما پیش می آیند که می بایست این وظیفه را به عهده نرم افزار بگذاریم تا با توجه به شرایط خاصی، تصمیم متفاوتی را اتخاذ کند. به طور مثال فرض کنیم که برنامه ای می نویسیم تا حساب ماهیانه ما را مورد بررسی قرار دهد. در این برنامه می توانیم از یکسری دستورات شرطی استفاده کنیم مبنی بر اینکه مثلاً اگر مانده حساب از 100 هزار تومان کمتر شد به ما اخطار دهد.

در زبان برنامه نویسی جاوا برای انجام اینکار از دستورات شرطی if, else, switch استفاده می کنیم. در واقع رایج ترین نوع شرط در زبان برنامه نویسی جاوا استفاده از دستورات if است. در حقیقت با استفاده از چنین دستوراتی، ما از برنامه می خواهیم که بسنجد که آیا یک شرط true یا false است و بسته به این که true یا false بود، دستور مد نظر ما را اجرا کند.

برای روشن شدن مطالب فوق، همان طور که قبلاً آموزش داده شد یک پروژه جدید در محیط برنامه نویسی اکلیپس تحت عنوان If ایجاد کرده و کلاسی به اسم IfClass در آن می سازیم (لازم به ذکر است این نام ها اختیاری هستند فقط می بایست توجه داشته باشیم که نحوه نام گذاری ها صحیح باشند.) فراموش نکنیم که در حین ساخت این کلاس، گزینه public static void main را تیک بزنیم. پیش از نوشتن هرگونه دستوری، کد ما به شکل زیر خواهد بود:

public class IfClass {
public static void main(String[] args) {

}
}
حال نیاز داریم تا متغیری از جنس int در برنامه خود با یک مقدار اولیه ایجاد کنیم تا بتوانیم به وسیله آن دستورات if را اجرا کنیم. برای همین منظور کد فوق را به صورت زیر تکمیل می کنیم:

public class IfClass {
public static void main(String[] args) {
int waterAmount = 11;
}
}

متغیر ما تحت عنوان waterAmount به معنی مقدار آب می باشد که مقدار آن معادل با 11 است (می توانیم به طور فرضی واحد آب را لیتر یا بطری در نظر بگیریم.) در این مرحله از برنامه نویسی پروژه ی خود، با استفاده از دستورات شرطی می خواهیم مقدار آب را با شرایطی که در نظر می گیریم مقایسه کرده و با توجه به نتیجه به دست آمده چیزی مرتبط را در بخش کنسول محیط برنامه نویسی اکلیپس چاپ کنیم. اکنون کد خود را به شکل زیر تکمیل می کنیم:

public class IfClass {
public static void main(String[] args) {
int waterAmount = 11;
if() {

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

public class IfClass {
public static void main(String[] args) {
int waterAmount = 11;
if (waterAmount < 20) {
System.out.println("Go and buy some water!");
}
}
}
در کد فوق waterAmount < 20 نشانگر این مطلب است که اگر مقدار متغیر waterAmount از عدد 20 کمتر بود دستور زیر که حاکی از نمایش جمله !Go and buy some water به معنی برو و مقداری آب بخر! در کنسول می باشد (علامت < به معنی کمتر از می باشد.) برنامه ما پس از اجرا به صورت زیر مشاهده خواهد شد:



حال اگر عدد 20 را به عدد 7 تغییر دهیم مشاهده خواهیم کرد که در کنسول هیچ چیزی نمایش داده نخواهد شد چرا که جواب شرط waterAmount < 7 به صورت false است زیرا مقدار اولیه که برای مقدار آب در نظر گرفته شده است معادل با 11 می باشد و از آنجا که 11 از 7 بزرگتر است پس جواب شرط ما true نخواهد شد که دستور داخل { } اجرا شود.

زمان هایی برای ما پیش خواهد آمد که نیاز داریم تا مقدار یک متغیر را به گونه ای بسنجیم که ببینیم آیا کمتر از یا مساوی با یک مقدار خاصی است یا خیر که برای این منظور از علامت <= استفاده می کنیم. در واقع اگر بخواهیم ببینیم که آیا تعداد بطری های آب موجود کمتر از 11 یا مساوی با 11 است یا خیر، کد خود را به شکل زیر بازنویسی می کنیم:

public class IfClass {
public static void main(String[] args) {
int waterAmount = 11;
if (waterAmount <= 11) {
System.out.println("Go and buy some water!");
}
}
}
در پرانتز مقابل if دیده می شود که waterAmount <= 11 نوشته شده است به این معنی که اگر تعداد بطری های آب موجود کمتر از 11 بطری بود دستور داخل { } را نمایش بده و اگر تعداد بطری های آب برابر با 11 هم بود باز هم جمله برو و مقداری آب بخر! را در کنسول نمایش بده. با اجرای برنامه فوق ما مجدداً می بینیم که جمله شرطی در بخش کنسول به نمایش در می آید چرا که شرطی که ما معین کرده ایم true است. حال ممکن است بخواهیم شرطی را در برنامه خود تعیین کنیم مبنی بر این که اگر تعداد بطری های آب دقیقاً معادل با 11 بود جمله !We do not need water به معنی ما به آب نیاز نداریم! را در بخش کنسول نمایش دهد. برای این منظور خیلی از برنامه نویسان مبتدی جاوا ممکن است که کد فوق را به صورت زیر بازنویسی کنند:



به محض این که ما کد خود را به صورت فوق بازنویسی کنیم، مشاهده خواهیم کرد که اکلیپس از ما ایراد خواهد گرفت و دور عبارت waterAmount = 11 خط چین قرار می دهد. این بدان معنا است که برنامه ما دچار مشکل است.

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

public class IfClass {
public static void main(String[] args) {
int waterAmount = 11;
if (waterAmount == 11) {
System.out.println("We don not need water!");
}
}
}
در این مرحله پس از اجرای برنامه، شرطی که ما در برنامه خود قرار داده ایم می سنجد که آیا مقدار بطری های آب آیا دقیقاً برابر با 11 است یا خیر، اگر پاسخ true بود جمله ی !We do not need water نمایش داده خواهد شد:



حال اگر مقدار متغیر waterAmount که در بخش بالای کد خود تعریف کردیم را به عددی به غیر از عدد 11 تغییر دهیم (خواه این عدد کمتر از 11 باشد خواه بیشتر) جواب شرط ما false خواهد شد و چیزی در کنسول به نمایش در نخواهد آمد.

علاوه بر علامت == علامت دیگری نیز وجود دارد که در برنامه نوسی جاوا و توسعه ی اپلیکیشن برای سیستم عامل اندروید به کرات مورد استفاده قرار می گیرد و آن هم =! به معنی نابرابر با می باشد. به طور مثال اگر در برنامه خود بخواهیم یک دستوری را اجرا کنیم مبنی بر این که اگر مقدار متغیر waterAmount معادل با 100 نبود جمله ی !The no of water bottles in not 100 به معنی تعداد بطری های آب معادل با 100 نیست! کد خود را به صورت زیر بازنویسی می کنیم:

public class IfClass {
public static void main(String[] args) {
int waterAmount = 11;
if (waterAmount != 100) {
System.out.println("The no of water bottles is not 100!");
}
}
}
در حقیقت عبارت waterAmount != 100 می سنجد که آیا مقدار اختصاص داده شده به متغیر waterAmount معادل با 100 است یا خیر و چنانچه این مقدار معادل با 100 نباشد جواب شرط ما true خواهد بود چرا که در شرط خود قید کرده ایم waterAmount != 100 به معنی اگر مقدار متغیر waterAmount مخالف با 100 باشد که در این صورت جواب این شرط true است چرا که مقدار متغیر ما معادل با 11 است از این رو جمله داخل دو علامت " " در بخش کنسول به نمایش در خواهد آمد و چیزی همچون تصویر زیر مشاهده خواهیم کرد:



به منظور این که بخواهیم شرطی قرار دهیم مبنی بر این که مقدار متغیری بیشتر از، بیشتر و یا معادل با مقدار خاصی باشد به ترتیب از > و >= نیز استفاده می کنیم. نکته ای که حتماً می بایست به خاطر داشته باشیم این است که به منظور مقایسه کردن رشته ها، همان طور که قبلاً آموزش داده شد می بایست از متدی تحت عنوان ()equals استفاده کرد و به هیچ وجه نمی توان از علائم < > و غیره استفاده کرد.
 

برخی موضوعات مشابه

بالا