در این آموزش ، یاد خواهید گرفت که از دو دستور انتخاب استفاده کنید: if و if … else برای کنترل جریان اجرای برنامه. در برنامه نویسی ، اغلب اجرای بخش خاصی از کد بر اساس این که شرط مشخص true یا false است (که فقط در زمان اجرا مشخص می شود) مطلوب است. برای چنین مواردی ، دستورات جریان کنترل استفاده می شود.
دستور (if (if-then در جاوا
نحو دستور if-then در جاوا به شکل زیر است:
if (expression) {
// statements
}
در اینجا expression یک عبارت از نوع boolean است (درست یا نادرست است).
اگر expression صحیح ارزیابی شود ، دستورات داخل بدنه ی if (عبارات داخل پرانتز) اجرا می شوند.
اگر expression نادرست ارزیابی شود ، دستورات داخل بدنه ی if اجرا نخواهند شد.
دستور if چگونه کار می کند؟
مثال ۱ : دستور if در جاوا
class IfStatement {
public static void main(String[] args) {
int number = 10;
if (number > 0) {
System.out.println(“Number is positive.”);
}
System.out.println(“This statement is always executed.”);
}
}
خروجی
Number is positive.
This statement is always executed.
وقتی number برابر با ۱۰ باشد ، عبارت number>0 صحیح ارزیابی می شود. از این رو ، کدهای داخل بدنه ی if اجرا می شوند.
حال مقدار number را به یک عدد صحیح منفی تغییر دهید. مثلا -۵ . خروجی در این حالت برابر خواهد بود با:
This statement is always executed.
وقتی number برابر با -۵ است ، عبارات number>0 نادرست ارزیابی می شود. از این رو ، کامپایلر جاوا از اجرای دستورات بدنه ی if می گذرد.
دستور (if … else (if-then-else در جاوا
در if در صورتی که شرط صحیح ارزیابی شود ، بخش خاصی از کد اجرا می شود. دستور if ممکن است بلوک else هم داشته باشد. در صورتی که شرط نادرست ارزیابی شود ، دستورات موجود در بدنه ی else اجرا می شوند.
نحو دستور if-then-else به شکل زیر است:
if (expression) {
// codes
}
else {
// some other code
}
دستور if … else چگونه کار می کند؟
مثال ۲ : دستور if … else در جاوا
class IfElse {
public static void main(String[] args) {
int number = 10;
if (number > 0) {
System.out.println(“Number is positive.”);
}
else {
System.out.println(“Number is not positive.”);
}
System.out.println(“This statement is always executed.”);
}
}
خروجی
Number is positive.
This statement is always executed.
وقتی number برابر با ۱۰ باشد ، عبارت number>0 به صورت صحیح ارزیابی می شود. در این حالت ، کدهای داخل بدنه ی if اجرا می شوند و کدهای داخل بدنه ی else اجرا نخواهند شد.
حال مقدار number را به عدد منفی تغییر دهید. مثلا -۵ . خروجی در این حالت برابر خواهد بود با:
Number is not positive.
This statement is always executed.
وقتی عدد -۵ است ، عبارت number>0 به صورت نادرست ارزیابی می شود. در این حالت ، کدهای داخل بدنه ی else اجرا می شوند و کدهای داخل بدنه ی if اجرا نخواهند شد.
دستور if … else … if در جاوا
در جاوا ، اجرای یک قطعه کد از بین کد های زیاد، امکان پذیر است. برای این کار می توانید از if … else … if استفاده کنید.
if (expression1)
{
// codes
}
else if(expression2)
{
// codes
}
else if (expression3)
{
// codes
}
.
.
else
{
// codes
}
دستورات if از بالا به پایین اجرا می شوند. به محض درست بودن شرط ، کد مربوط به آن اجرا می شود.. پس از آن ، کنترل برنامه به خارج از if … else … if پرش می کند.
اگر همه عبارات تست نادرست باشند ، کدهای داخل بدنه ی else اجرا می شوند.
مثال ۳ : دستور if … else … if در جاوا
class Ladder {
public static void main(String[] args) {
int number = 0;
if (number > 0) {
System.out.println(“Number is positive.”);
}
else if (number < 0) {
System.out.println(“Number is negative.”);
}
else {
System.out.println(“Number is 0.”);
}
}
}
خروجی
Number is 0.
وقتی number برابر با ۰ باشد ، هر دو شرط number>0 و number<0 به غلط ارزیابی می شوند. از این رو ، کد درون بدنه ی else اجرا می شود.
برنامه بالا بررسی می کند که آیا عدد مثبت ، منفی یا ۰ است.
دستور if … else تو در تو در جاوا
امکان این که دستورات if..else تو در تو در جاوا داشته باشیم، وجود دارد.
در اینجا برنامه ای برای یافتن بزرگترین عدد از بین ۳ عدد وجود دارد:
مثال ۴ : دستور if … else تو در تو
class Number {
public static void main(String[] args) {
Double n1 = -1.0, n2 = 4.5, n3 = -5.3, largestNumber;
if (n1 >= n2) {
if (n1 >= n3) {
largestNumber = n1;
} else {
largestNumber = n3;
}
} else {
if (n2 >= n3) {
largestNumber = n2;
} else {
largestNumber = n3;
}
}
System.out.println(“Largest number is ” + largestNumber);
}
}
خروجی
Largest number is 4.5
نکته: در برنامه های بالا ، ما خودمان به متغیرها مقدار اختصاص داده ایم تا این امر ساده تر شود. اما ، در اپلیکیشن های دنیای واقعی ، این مقادیر ممکن است از داده های ورودی کاربر ، فایل های لاگ، فرم های ارسالی و غیره حاصل شود.