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

ایمیل خود را وارد کنید:

اوراکل (ADF(Application Development Framework یک چارچوب(Framework)  کلی می باشد که برروی استانداردهای Java EE و تکنولوژی های Open Source جهت سادگی و پیاده سازی سریع تر برنامه های Java EE ایجاد شده است که کاملا توسعه پذیر و قابل تنظیم بوسیله افزودن یا اصلاح کتابخانه ها می باشد. ADF وظایف را از طریق ایجاد سرویس […]

CardLayout پنجره ای را در نظر بگیرید که شامل چندین پنل می باشد که در یک زمان فقط یکی از این پنل ها قابل مشاهده می باشد،با استفاده از کلاس java.awt.CardLayout شما می توانید کامپوننتی را ایجاد کنید که فقط یکی از این پنل ها را در یک زمان نمایش دهد، مانند شکل زیر: زمانی […]

اطلاعات سخت افزاری CPU اطلاعات CPU شامل جزئیاتی  مثل معماری ، نام سازنده ، مدل ، تعداد هسته ها ، سرعت هرکدام از هسته ها و غیره است. برای دسترسی به چنین جزئیاتی درباره سخت افزار CPU در لینوکس، تعداد بسیار اندکی کامند برای این منظور وجود دارد که ما در اینجا بطور مختصر تعدادی […]

دستورات if و switch

اگر بخواهیم روند اجرای برنامه را با توجه به شرط یا شرایطی تغییر دهیم از دستورات if و switch استفاده می کنیم که قبلا با آنها  در مطالب قبلی اشاره کردیم  و در اینجا بیشتر به آنها می پردازیم.

دستور if

در مثال پیمایش آرایه ها نسخه ای از استفاده از دستور if را دیدیم:

if (friends[i]==null){
i++;
continue;
}

داخل آکولاد باز و بسته کدی قرار می گیرد که  در صورتی که شرط درون پرانتز باز و بسته دستور if درست ارزیابی شود بطور کامل اجرا خواهد شد و نه فقط قسمتی از دستورات درون آکولاد های باز و بسته.  ما در قطعه کد بالا دو دستور داریم یکی++ i و دیگری continue. در دستورات if که بدنه آنها شامل فقط یک دستور است می توان از آکولاد باز و بسته صرفه نظر کرد، مثلا اگر در قطعه کد بالا فقط دستور++ i را داشتیم  می توانیم آنرا بصورت زیر بنویسیم:

if (friends[i]==null){
i++;
}

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

دستور else-if

از این روش else-if زمانی استفاده می کنیم که دو حالت برای روند اجرای بعداز بررسی یک شرط داشته باشیم و شکل کلی آن بصورت زیر است:

if (بررسی شرط){

true

} else{

false

}

آکولاد باز و بسته اول زمانی اجرا می شود که بررسی در دستور if شرط true ارزیابی شود و محتوای آکولاد باز و بسته بعداز کلمه کلیدی else در صورتی که نتیجه ارزیابی شرط false ارزیابی شود و اجرا خواهد شد.

روش دیگر استفاده از دستورات else-if بصورت زیر است که در این روش شرط به دو صورت کلی تقسیم می شود.

کد زیر را در نظر بگیرید:

if (friends[i]==null){
System.out.println("I found an array element with null value");
} else if (friends[i] == "Ali"){
System.out.println("Ali is one of my friend!");
} else if (friends[i] == "Saeed"){
System.out.println("Saeed is another one of my friend.");
} else{
System.out.println(friends[i] + " is one of my friend.");
}

در این مثال همانطور که می بینید در آغاز یک بلوک if داریم و یک بلوک else در پایان و ما بین اینها تعدادی بلوک else-if داریم. این نوع نوشتن شرط زمانی استفاده می شود که بخواهیم چندین شرط را در یک چیز واحد بررسی کنیم. در این مثال اگر else-if را با بلوک if جایگزین کنیم مشکلی پیش نخواهد آمد اما از خوانایی برنامه کاسته می شود. else پایانی در بعضی مواقع ضروری و در بعضی مواقع هم اصلا استفاده نمی شود اما در بلوک else معمولا کدی نوشته می شود که  زمانی اجرا می شود که if ابتدایی و else-if بعدی بعد از بررسی نقض شوند.

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

عبارت های شرطی می تواند با استفاده از عملگرهای بولی AND،OR و NOT باشد،AND بولی در زبان برنامه نویسی جاوا بصورت زیر بیان می شود:

If(age<20 && gender="male") {
}

OR بولی نیز می تواند در زبان برنامه نویسی به صورت || بیان شود:

If(age<30 || YearsINArmy) {
}

NOT منطقی نیز می تواند توسط کاراکتر “!” بصورت زیر بیان شود:

boolean hasBachelorDegree;
if (!hasBachelorDegree) {
}

کاراکتر “!” علاوه براینکه کنار یک متغییر بولین می تواند قرار داده شود،در کنار یک عبارتی که boolean برمی گرداند نیز می تواند استفاده شود. مثال بعدی چگونگی استفاده از این کاراکتر را نمایش می دهد،توجه داشته باشید که عبارت بایستی داخل پرانتز استفاده گردد و کاراکتر خارج از پرانتز وگرنه کامپایلر جاوا تصویر میکند که شما سعی در نفی کردن محتوی [friends[i کردیدهاید که در کد زیر همچین اجازه ای داده نمی شود:

if (!(friends[i]=="Amir")){
System.out.println("my best friend is amir.");
}

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

عملگر شرطی شامل این قسمتها می شود: که عبارت که boolean برمی گرداند، یک علامت سوال(?)، یک مقدار که در صورتی برگرداننده می شود که شرط true باشد، علامت :، و در پایان یک مقدار که در صورتی برگرداننده می شود که شرط false باشد. بعنوان مثال کد زیر در صورتی مقدار۳۰۰۰  را در متغییر bonus قرار می دهد که شرط salary>9000 مقدار true را برگرداند، در غیراینصورت مقدار۲۰۰۰  در متغییر bonus قرار داده می شود:

float salary;
int bonus = salary>90000?3000:2000;

دستور switch

دستور switch در مواقعی استفاده می شود که اجرای برنامه مبتنی بر انتخاب های گوناگون باشد. اگرچه می توانید از دستور else-if هم استفاده کنید اما استفاده از آن باعث طولانی شدن کدتان میشود و از خوانایی برنامه یتان کاسته می شود، بهمین دلیل استفاده از دستور  switch در چنین مواقعی خوانایی کدتان را بالا می برد. در کد زیر مقدار متغییر bonus مبنی بر متغییر salaryBand انتخاب شده است:

int salaryBand;
int bonus;
switch(salaryBand){
case 1:
bonus=1000;
break;
 case 2:
bonus=2000;
break;
case 3:
bonus=6000;
break;
case 4:
bonus=10000;
break;
default:
System.out.println(“Invalid salary band”);
}

دیدگاه خود را به ما بگویید.