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

دستورات شرطی #C

دستورات شرطی در #C

 

در فصل سوم در مورد الگوريتم ها و كاربرد آنها در نرم افزار مطالبي را آموختيد. در اين فصل نحـوه كنتـرل رونـد اجـراي برنامـه درطول اين الگوريتم ها را مشاهده خواهيد كرد . براي مثال خواهيد ديد كه چگونه مي توانيد تصميماتي از قبيل “اگر X بـه ايـن حالـتبود، A را انجام بده در غير اين صورت B را انجام بده ” را در برنامه ي خود پياد ه كنيد. اين قابليت در الگوريتم برنامه هـا بـه عنـوانانشعاب شناخته مي شود . همچنين در اين فصل مشاهده خواهيد كرد چگونه مي توانيد يك قطعه كد را به تعداد مرتبه مشخص و يـاتا زماني كه يك شرط درست است اجرا كنيد .خصوصا در اين فصل در مورد موارد زير صحبت خواهيم كرد :

 

  • دستور if
  • switch
  • حلقه هاي for و foreach
  • do … until و do … while هاي حلقه

تصميم گيري در برنامه :

 

الگوريتم ها همواره داراي تصميماتي هستند . در واقع، اين تصميمات است كه باعث مي شود كامپيوتر بتواند وظيفه خود را بـه خـوبيانجام دهد . هنگام كد نويسي با تصميم گيري هاي زيادي مواجه مي شويد . مثلا فرض كنيد كه ليستي شامل ده نـام در اختيـار شـماقرار داده اند و بايد كدي بنويسيد كه به اعضاي اين ليست نامه اي را بفرستد . در هر قسمت از اين كد مي پرسـيد “آيـا ليـست تمـامشده است؟ ” اگر چنين بود الگوريتم تمام مي شود . در غير اين صورت نام نف ر بعدي از ليست استخراج ميشود و مراحـل ارسـال نامـهبراي او انجام ميشود . به عنوان مثالي ديگر ممكن است كه بخواهيد فايلي را باز كنيد . در اين حالت ابتدا مي پرسيد “آيـا فايـل مـوردنظر وجود دارد؟”. در صورت وجود فايل را باز مي كنيد و در غير اين صورت الگوريتم را به اتمام ميرسانيد .تمام اين تصميم گيريها به يك نحو در برنامه پياده سازي مي شوند . در ابتدا به بررسي دستور if براي كنترل رونـد اجـراي برنامـهمي پردازيم .

 

دستور if :

 

راحت ترين راه براي تصميم گيري در ويژوال #2005 C استفاده از دستور if است. در بخش امتحان كنيد زير با نحوه كاربرد ايـندستور آشنا خواهيم شد :

 

يك دستور if ساده

 

)1 يك برنامه تحت ويندوز به نام Simple If ايجاد كنيد. سپس با استفاده از جعبه ابزار يك كنترل Button بـرروي فرم قرار داده، خاصيت Name آن را برابر btnIf و خاصيت Text آن را برابـر If قـرار دهيـد . روي ايـنكنترل دو بار كليك كنيد و كد زير را در آن وارد كنيد :

 

private void btnIf_Click(object sender, EventArgs e)

{

// Declare and set a variable

int intNumber = 27;

// Here’s where you make a desicion

// and tell the user what happend

if (intNumber == 27)

{

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

“Simple If”);

}

}

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

 

sim-power.ir (039)

4-1 شكل

در ابتدا يك متغيير به نام intNumber ايجاد مي كنيد و مقدار آن را برابر 27 قرار مي دهيد (همانطور كه مي بينيد هم تعريفمتغيير و هم مقدار دهي اوليه به آن در يك خط انجام شده است ):

 

int intNumber = 27;

سپس با استفاده از دستور if مشخص مي كنيد كه بايد چه كاري انجام دهيد . در اينجا شما ميگوييد “اگر intNumber برابربا 27 بود…” .

// Here’s where you make a desicion

// and tell the user what happend

if (intNumber == 27)

١١٠

{

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

“Simple If”);

}

 

قطعه كدي كه درون آكولاد پايين دستور if قرار دارد فقط هنگامي اجر ا ميشود كه intNumber برابر با 27 باشد . به عبارتديگر هنگامي كه شرط داخل پرانتز برابر true و يا درست باشد، كد داخل بلاك if اجرا مي شود .بنابراين در اينجا، اجراي برنامه شروع ميشود و به دستور if ميرسد. بعد از ارزيـابي عبـارت داخـل پرانتـز چـون مقـدار آن برابـر بـاtrue است، دستورات درون بلاك if اجرا مي شوند و سپس اجراي برنامه از خط بعد از بلاك if ادامه پيدا مي كند .

 

نكته: دقت كنيد كه كدهاي درون بلاك if به صورت اتوماتيك با مقداري تورفتگينوشته مي شوند. ايـن مـورد باعـث افـزايشخوانايي كد مي شود، زيرا مي توانيد با نگاهي سر يع بگوييد كه كدام قسمت از كد در صورت صحيح بودن دستور if اجرا مي شـود .همچنين براي خوانايي بيشتر برنامه بهتر است قبل و بعد از بلاك if مقداري فضاي خالي قرار دهيد .

يك دستور if ساده همانند قسمت قبل ميتواند بودن هيچ آكولادي نوشته شود . البته اين كار هنگامي امكان پـذير اسـت كـه بـلاكif فقط شامل يك دستور باشد. به كد زير نگاه كنيد :

 

if (intNumber == 27)

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

“Simple If”);

اين دستور هم مانند دستور if در برنامه قبلي كار مي كند و مزيت آن فقط اين است كه كد را كوتاهتر مي كند .اما اگر نتيجه يك شرط نادرست باشد، چه اتفاقي مي افتد؟ در امتحان كنيد بعدي اين حالت را بررسي خواهيم كرد .

 

 نادرست بودن شرط

 

)1 اگر برنامه Simple If در حال اجرا است آن را ببنديد. كنترل Button ديگري به فرم اضافه كنيـد، خاصـيتName آن را برابر btnAnotherIf و خاصيت Text آن را برابـر Another If قـرار دهيـد . رويدكمه دو بار كليك كنيد و كد مشخص شده در زير را در متد مربوط به رويداد كليك آن وارد كنيد :

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)

1 Indention

{

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

“1000!”, “Simple If”);

}

}

)2 برنامه را اجرا كنيد .

در اين حالت، جواب سوال “آيا intNumber برابر با 1000 است؟ ” خير است . بلاك دستورات هم فقط در حالتي اجرا مي شودكه نتيجه شرط برابر true باشد، بنابراين كدهاي اين بلاك اجرا نخواهند شد . در چنين شرايطي كنترل برنامه بلافاصـله بـه خـطبعد از if منتقل مي شود و كد مربوط به آن را اجرا مي كند

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

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

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