آکادمی سیم پاور

دستور Else در #C

دستور Else در #C

 

اگر بخواهيد در صورت درست بودن شرط قسمتي از برنامه و در صورت غلط بودن آن قسمتي ديگر اجرا شـود، مـي توانيـد از دسـتورelse استفاده كنيد. در امتحان كنيد زير مي توانيد نحوه كاربرد اين دستور را مشاهده كنيد .

)1 كد درون رويداد Click مربوط به كنترل btnAnotherIf را به صورت زير تغيير دهيد :

 

private void btnAnotherIf_Click(object sender,

EventArgs e)

{

// Declare and set a variable

int intNumber = 27;

// Here’s where you make a decision,

// and tell the user what happened

if (intNumber == 1000)

{

MessageBox.Show(“‘intNumber’ is, indeed, ” +

“1000!”, “Simple If”);

}

else

{

MessageBox.Show(“‘intNumber’ is not 1000!”,

“Simple If”);

}

}

 

)2 برنامه را اجرا كنيد و روي دكمه Another If كليك كنيد. كادر پيغامي مشابه شكل 4-2 را مشاهده خواهيد كرد .

sim-power.ir (040)4-2 شكل

كدي كه در بلاك else وارد شده است، فقط در صورتي اجرا مي شود كه عبارت درون پرانتز if نادرست باشد . در ايـن حالـت،مقدار intNumber برابر با 27 است، اما چون در شرط با عدد 1000 مقايسه شده است بنابراين شرط غلط اسـت و كـد نوشـتهشده در بخش else اجرا خواهد شد :

else

{

MessageBox.Show(“‘intNumber’ is not 1000!”,

“Simple If”);

}

 

بررسي چند شرط با else if :

 

اگر مي خواهيد بيش از يك حالت را تست كنيد، بايد از تركيب دستور else و if استفاده كنيد. در امتحان كنيـد بعـدي، برنامـهSimple If را به نحوي تغيير مي دهيم كه برابري intNumber را با چند عدد مختلف بررسي كند و نتيجه را نمايش.دهد

 

)1 كد درون متد btnAnotherIf_Click را به صورت زير تغيير دهيد :

private void btnAnotherIf_Click(object sender,

EventArgs e)

{

// Declare and set a variable

int intNumber = 27;

// Here’s where you make a decision,

// and tell the user what happened

if (intNumber == 1000)

{

MessageBox.Show(“‘intNumber’ is, indeed, ” +

“1000!”, “Simple If”);

}

else if (intNumber == 27)

{

MessageBox.Show(“‘intNumber’ is 27!”,

“Simple If”);

}

else

{

MessageBox.Show(“‘intNumber’ is neither 1000” +

” nor 27!”, “Simple If”);

}

}

)2 برنامه را اجرا كنيد و روي دكمه فرمان Another If كليك كنيد. كادر پيغامي مشابه شكل 4-3 را خواهيد ديد .

sim-power.ir (039)4-3 شكل

در اين برنامه دستورات بخش else if اجرا مي شوند، زيرا intNumber برابر با عدد 27 است و بنابراين عبارت داخـلelse if درست خواهد ب . ود توجه داشته باشيد كه اگر شرط داخل else if نيز غلط بود، كدهاي بخـش else اجـرامي شدند .در يك سري دستورات if و else if متوالي، شرايط از بالاترين if به سمت پايين بررسي مي شوند و اولين عبـارتي كـهدرست ارزيابي شد، دستورات مربوط به آن اجرا مي شوند . پس در برنامه قبل اگر شرط اول را به گونه اي تنظيم كنيم كه درست باشد(براي مثال داخل پرانتز عبارت intNumber > 10 را قرار دهيم كه به علت بزرگتر بودن intNumber از 10 برابـربا true است )، با وجود اينكه شرط دوم هم درست است دستورات شرط اول اجرا مي شوند و كنترل برنامه بـه اولـين خـط بعـد ازسري دستورات if مي رود .

else if (intNumber == 27)

{

MessageBox.Show(“‘intNumber’ is 27!”,

“Simple If”);

}

else

{

MessageBox.Show(“‘intNumber’ is neither 1000” +

” nor 27!”, “Simple If”);

}

شما مي توانيد به هر تعداد كه بخواهيد قسمتهاي else if را به يك دستور if براي بررسي حالتهاي مختلف اضـافه كنيـد .اما همانطور كه ذكر شد، هنگامي كه ويژوال #C به اولين دستور if رسيد شرط داخل آن را بررسي ميكند. اگر عبارت داخل پرانتـزدرست ارزيابي شود، دستورات داخل بلاك if اجرا مي شوند و كنترل برنام ه به اولين خط بعـد از سـري دسـتورات if و elseميرود. در غير اين صورت، عبارت مربوط به اولين else if ارزيابي مي شود. اين روند ادامه پيدا مي كند تا برنامه به بلاكـي ازدستورات برسد كه حاصل آن درست باشد . در اين حالت دستورات اين بلاك اجرا شده و كنترل برنامه به بعـد از مجموعـه دسـتوراتif و else مي رود .

 

نكته: هنگام بررسي يك سري از حالتها، بهتر است آنهايي را كه احتمال درست بودنشان بيشتر است، ابتدا بررسي كنيـد . ايـن مـوردباعث مي شود كامپايلر هنگام اجرا، شرايط اضافه را بررسي نكند و كد سريعتر اجرا شود .

 

نكته2: در مواردي كه تعداد قسمتهاي else if در برنامه زياد باشد و حالتهاي زيادي را بايد بررسي كنيد، به جـاي اسـتفاده ازif و else if ميتوانيد از switch استفاده كنيد كه در قسمتهاي بعدي توضيح داده مي شوند

سعید عربعامری
من سعید عربعامری نویسنده کتاب 28 گام موثر در فتح متلب مدرس کشوری متلب و سیمولینک و کارشناس ارشد مهندسی برق قدرتم . بعد از اینکه دیدم سایتهای متعدد یک مجموعه کامل آموزش متلب و سیمولینک ندارند به فکر راه اندازی این مجموعه شدم
http://sim-power.ir

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

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