آموزش سی شارپ c# درس سوم

 
ارسال شده در تاریخ 1392/7/22 توسط admin در زمینه آموزش سی شارپ
 
بررسی دستور if ، دستور if ساده ، دستور if-else ، دستور else...else if-else...if ، دستور switch ، دستور break ، دستور case، دستور goto ، عملگرهای AND و OR
 
 
درس سوم - دستورالعمل های کنترلی و شرطی
 
در این درس با دستورالعمل های کنترل و انتخاب در C# آ شنا میشوید . هدف این درس عبارتست از :
• یادگیری دستور if
• یادگیری دستور switch
• نحوه بکارگیری دستور break در دستور switch
• دری صحیح از نحوه بکارگیری دستور goto
 
بررسی دستور if و انواع مختلف آن
در درسهای گذشته، برنامه هایی که مشاهده می کردید از چندین خط دستور تشکیل شده بودند که یکی پس از دیگری اجرا میشدند و سپس برنامه خاتمه می یافت . در این برنامه ها هیچ عمل تص میمگیری صورت نم یگرفت و تنها دستورات برنامه به ترتیب اجرا می شدند . مطالب این درس نحوه تص میمگیری در یک برنامه را به شما نشان می دهد .
 
اولین دستور تصمیم گیری که ما آنرا بررسی می نماییم، دستورالعمل if است . این دستور دارای سه فرم کلی : تص میمگیری ساده، تصم یمگیری دوگانه، تصمیم گیری چندگانه میباشد .
 
مثال 3-1 - فرم های دستورالعمل if
using System;
 
class IfSelect
{
public static void Main()
{
string myInput; int myInt;
Console.Write("Please enter a number: "); myInput = Console.ReadLine(); myInt = Int32.Parse(myInput);
تصم یمگیری ساده و اجرای عمل داخل دو کروشه //
if (myInt > 0)
{
 
www.Arsanjan.blogfa.com
Console.WriteLine("Your number {0} is greater than zero.", myInt);
}
تصمیم گیری ساده و اجرای عمل بدون استفاده از دو کروشه //
if (myInt < 0)
Console.WriteLine("Your number {0} is less than zero.", myInt);
تصم یمگیری دوگانه //
if (myInt != 0)
{
Console.WriteLine("Your number {0} is not equal to zero.", myInt);
} else
{
Console.WriteLine("Your number {0} is equal to zero.", myInt);
}
تصمیم گیری چندگانه //
if (myInt < 0 || myInt == 0)
{
Console.WriteLine("Your number {0} is less than or equal to zero.", myInt);
}
else if (myInt > 0 && myInt <= 10)
{
Console.WriteLine("Your number {0} is between 1 and 10.", myInt);
}
else if (myInt > 10 && myInt <= 20)
{
Console.WriteLine("Your number {0} is between 11 and 20.", myInt);
}
else if (myInt > 20 && myInt <= 30)
{
Console.WriteLine("Your number {0} is between 21 and 30.", myInt);
} else
{
Console.WriteLine("Your number {0} is greater than 30.", myInt);
}
پایان متد } //Main() پایان کلاس } //IfSelect
 
برنامه 3-1 از یک متغیر myInt برای دریافت ورودی از کاربر استفاده می نماید، سپس با استفاده از یک سری دستورات کنترلی، که همان دستور if در اینجاست، عملیات خاصی را بسته به نوع ورودی انجام می دهد . در ابتدای این برنامه عبارت Please enter a umber: در خروجی چاپ میشود . دستور Console.ReadLine() منتظر میماند تا کاربر ورودی وارد کرده و
سپس کلید Enter را فشار دهد . همانطور که در قبل نیز اشاره کرده ایم، دستور Console.ReadLine() عبا رت ورودی را به
 
www.iranproJe.com
فرم رشته دریافت می نماید پس مقدار ورودی کاربر در اینجا که یک عدد است به فرم رشت های در متغیر myInput که از نوع رشته ای تعریف شده است قرار می گیرد . اما میدانیم که برای اجرای محاسبات و یا تصمیم گیری بر روی اعداد نمی توان از آنها در فرم رشته ای استفاده کرد و باید آنها را بصورت عددی مورد استفاده قرار داد . به همین منظور باید متغیر myInput را به نحوی به مقدار عددی تبدیل نمای یم . برای این منظور از عبارت Int32.Parse() استفاده می نماییم . این دستور مقدار رشت ه ای متغیر داخل پرانتزش را به مقدار عددی تبدی ل کرده و آنرا به متغیر دیگری از نوع عددی تخصیص می دهد . در این مثال نیز همانطور که
دیده می شود، myInput که تز نوع رشت ه ای است در داخل پرانتز قرار گرفته و این مقدار برابر با myInt که از نوع int است قرار گرفته است . با این کار مقدار عددی رشته ورودی کاربر به مت غیر myInt تخصیص داده می شود ) . توضیح کاملتری در مورد Int32 و سایر تبدیلات مشابه به آن در درسهای آینده و در قسمت نوع های پیشرفته مورد بررسی قرار می گیرند (. حال ما متغیری از نوع مورد نظر در دست داریم و میتوانیم با استفاده از دستور if بر روی آن پردازش انجام داده و تصمیم گیری نماییم .
 
دستور if
اولین دستور بصورت if (boolean expression) {statements} آورده شده است . دستور if با استفاده از کلمه کلیدی
if آغاز می شود . سپس یک عبارت منطقی درون یک زوج پرانتز قرار میگیرد . پس از بررسی این عبارات منطقی دستورالعمل / دستورالعمل های داخل کروشه اجرا می شوند . همانطور که مشاهده می نمایید، دستور if یک عبارت منطقی را بررسی می کند . در صورتیکه مقدار این عبارات true باشد دستورهای داخل بلوی خود را اجرا می نماید ) قبلا توضیح داده شد که
دستورهایی که داخل یک زوج کروشه {} قرار می گیرند در اصطلاح یک بلوی نامیده می شوند (. و در صورتیکه مقدار آن برابر با false باشد اجرای برنامه به بعد از بلوی if منتقل می شود . در این مثال همانطور که ملاحظه مینمایید، عبارت منطقی دستور if بشکل if(myInt > 0) است . در صورتیکه مقدار myInt بزرگتر از عدد صفر باشد، دستور داخل بلوی if اجرا می شود و در غیر اینصورت اجرای برنامه به بعد از بلوی if منتقل میگردد .
 
دومین دستور if دراین برنامه بسیار شبیه به دستور اول است، با این تفاوت که در این دستور، دستور اجرایی if درون یک بلوی
قرار نگرفته است . در صورتیکه بخواهیم با استفاده از دستور if تنها یک دستورالعمل اجرا شود، نیازی به استفاده از بلوی برای آن دستورالعمل نمی باشد . استفاده از بلوی تنها زمانی ضروری است که بخواهیم از چندین دستور استفاده نماییم .
 
دستور if-else
در بیشتر موارد از تصمیم گی ریهای دوگانه یا چندگانه استفاده می شود . در این نوع تصمیم گیری ها، دو یا چند شرط مختلف بررسی می شوند و در صورت true بودن یکی از آنها عمل مربوط به آن اجرا می گردد . سومین دستور if در این برنامه نشان دهنده یک تصمیم گیری دوگانه است . در این حالت درصورتیکه عبارت منطقی دستور if برابر با true باشد دستور بعد از if اجرا می شود و در غیر اینصورت دستور بعد از else به اجرا در می آید . در حقیقت در این حالت می گوئیم " اگر شرط if صحیح است دستورات مربوط به if را انجام بده و درغیر اینصورت دستورات else را اجرا کن ." فرم کلی دستور if-else بصورت زیر است :
if (boolean expression) {statements} else
{statements}
که در آن boolean expression عبارت منطقی است که صحت آن مورد بررسی قرار می گیرد و statements دستور یا دستوراتی است که اجرا می گردند .
 
www.IranPRoje.com
 
دستور if-else if ... else یا if تودرتو
در صورتیکه نیاز باشد تا چندین حالت منطقی م ورد بررسی قرار گیرد و دستورات مربوط به یکی از آنها اجرا شود، از فرم تصمیم گیری چندگانه استفاده مینماییم . این نوع استفاده از دستور if در اصطلاح به if تودرتو (Nested If) معروف است چراکه در آن از چندین دستور if مرتبط به یکدیگر استفاده شده است . چهارمین دستور if در مثال 3-1 استفاده از if تودرتو را
نشان می دهد . در این حالت نیز دستور با کلمه کلیدی if آغاز می گردد . شرطی بررسی شده و در صورت true بودن دستورات مربوط به آن اجرا می گردد . اما اگر مقدار این عبارت منطقی false بود آنگاه شرطهای فرعی دیگری بررسی می شوند . این شرطهای فرعی با استفاده از else if مورد بررسی قرار می گیرند . هر یک از این شرطها دارای عبارات منطقی مربوط به خود هستند که در صورت true بودن عبارت منطقی دستورات مربوط به آنها اجرا می گردد و در غیر اینصورت شرط بعدی مورد بررسی قرار میگیرد . باید توجه کنید که در ساختار if تودرتو تنها یکی از حالتها اتفاق می افتد و تنها یکی از شرطها مقدار true را باز میگرداند . فرم کلی if تودرتو بشکل زیر است :
if (boolean expression) {statements}
else if (boolean expression) {statements}
... else
{statements}
عملگرهای OR و ||) AND و (&&
نکته دیگری که باید در اینجا بدان اشاره کرد، نوع شرطی است که در عبارت منطقی دستور if آخر مورد استفاده قرار گرفته است . در این عبارت منطقی از عملگر || استفاده شده است که بیانگر OR منطقی است . عملگر OR زمانی مقدار true بازمی گرداند که حداقل یکی از عملوندهای آن دارای مقدار true باشد . بعنوان مثال در عبارت (myInt < 0 || myInt == 0) ، در
صورتیکه مقدار متغیر myInt کوچکتر یا مساوی با صفر باشد، مقدار عبارت برابر با true است . نکته قابل توجه آنست که در زبان C# ، همانطور که در درس دوم به آن اشاره شد، دو نوع عملگر OR وجود دارد . یکی OR منطقی که با || نمایش داده
می شود و دیگری OR معمولی که با | نشان داده می شود . تفاوت بین این دو نوع OR در آنست که OR معمولی هر دو عملگر خود را بررسی می نماید اما OR منطقی تنها در صورتیکه عملگر اول آن مقدار false داشته باشد به بررسی عملگر دوم خود میپردازد .
 
عبارت منطقی (myInt > 0 && myInt <= 10) حاوی عملگر AND شرطی (&&) می باشد . این عبارت در صورتی
مقدار true بازمی گرداند که هر د و عملوند AND دارای مقدار true باشند . یعنی در صورتیکه myInt هم بزرگتر از صفر باشد و
هم کوچگتر از 10 ، مقدار عبارت برابر با true می گردد . در مورد AND نیز همانند OR دو نوع عملگر وجود دارد . یکی AND معمولی (&) و دیگری AND شرطی .(&&) تفاوت این دو نیز در آنست که AND معمولی (&) همیشه هر دو عملوند خود را بررسی می نماید ولی AND شرطی (&&) تنها هنگامی به بررسی عملوند دوم خود میپردازد که مقدار اولین عملوندش برابر با true باشد . عملگرهای منطقی ||) و (&& را در اصطلاح عملگرهای میانبر (short-circuit) مینامند چراکه تنها در صورت لزوم عملوند دوم خود را بررسی مینمایند و از اینرو سریعتر اجرا میشوند .
Copyright © 2014 icbc.ir