المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


آموزش:برنامه‌نویسی:دستور انتخاب

دستور انتخاب

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

یک مثال

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

...
if (Var > 0) {
    //Statement
}
...

if

صورت کلی این دستور به شکل زیر است.

if(condition){
    //Statement
}

در کد بالا اگر condition برقرار باشد آنگاه دستورات statement اجرا خواهند شد. در غیر این صورت دستورات داخل بلاک if اجرا نخواهند شد و ادامه ی اجرای برنامه بعد از if خواهد بود.

if و else

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

if (condition 1) {
    //statement 1
}
 
else if (condition 2) {
    //statement 2
}
 
else {
    //statement 3
}

تعداد دستورات else if می تواند به دلخواه افزایش یابد.اگر شرط اول برقرار باشد، دستورات بلوک اول، اگر شرط دوم برقرار باشد، دستورات بلوک دوم،… و در نهایت اگر هیچ کدام از شرط ها برقرار نباشد، دستورات بلوک else اجرا خواهند شد.

مثال دیگر

/**This code is written in C++ syntax**/
 
int your_number;
cin>>your_number;
 
if (your_number<0) {
    cout<<"Your number is negative"<<endl;
}
 
else if (your_number == 0) {
    cout<<"Your input number is zero"<<endl;
}
 
else if (your_number == 1)
    cout<<"Your number is equal to 1"<<endl;
 
else {
    cout<<"Your number is not small enough"<<endl;
    cout<<"It's greater than one"<<endl;
}

دقت کنید که اگر بلوک دستورات if، شامل یک دستور باشد نیازی به گذاشتن آکولادها نیست.

روش دیگر پیاده‌سازی else,if

برای پیاده‌ سازی دستور انتخاب، روش دیگری هم وجود دارد.
تکه کد زیر را در نظر بگیرید. فرض کنید می‌خواهیم اگر مقدار متغیر a برابر 1 باشد، مقدار b برابر 10 گردد و در غیر این صورت مقدار b برابر 10- گردد.

b = (a == 1?10 : -10) ;

ابزار صفحه