به کاربردن دستوارت شرطی در زبان C# به همراه مثال

  • 1389/4/17
  • سپهر خيري
  • 2

در بسیاری از موارد در ساخت برنامه های کاربردی نیاز به مقایسه دو عملگر حس میشود در C#  مانند سایر زبان های برنامه نویسی این امکان وجود دارد تا با استفاده از دستوارت تعبیه شده در این زبان عمل مقایسه انجام شود .

کلمات کلیدی برای ساده ترین دستوارت شرطی عبارت است از:
If و case  که رایج ترین موارد در عمل مقایسه هستند

برای تعداد بالا و راحتی کار استفاده از case  مناسب تر بوده و بلعکس عملگر If  مناسب است

برای اینکه عمل مقایسه ساده ای را بین دو عدد انجام دهید مثال زیر را دنبال کنید
برنامه ای ایجاد کنید تا با گرفتن 2 عدد و مقایسه انان عدد بزرگتر را نمایش دهد…..
برای این کار ابتدا مثل همیشه نیاز به تعریف 2 متغیر به صورت زیر است:

در قسمت public partial class

Int x,y;

پس از تعریف دو متغیر x, y روی فرم نیاز به 2 عدد Textbox داریم

برای انجام عملیات و کددهی ان نیاز به Button داریم که انرا نیز اضافه میکنیم

حالا نوبت به مقداردهی متغیرها میرسد:

x = Convert.ToInt32(textBox1.Text);

y = Convert.ToInt32(textBox2.Text);

پس از اینکه با دو قطعه کد بالا دو عدد را از کاربر گرفتیم نیاز به مقایسه با دستور  if  داریم

شکل کلی دستور If  به صورت زیر است:

IF (condition) statement

کلمه If  که یک کلمه رزرو شده بوده  و نیازی به تغییر ندارد قسمت Condition نمایش دهنده شرط مورد نظر میباشد و قسمت Statement  عمل مناسب به هنگام درستی شرط است

برای حالت غلط بودن ان از کلمه Else  استفاده میکنیم به صورت زیر:
else statement

گاهی نایز است تا چندین شرط مورد بررسی قرار گیرد که برای این موضوع نیاز به استفاده از دستور Else If  داریم با شکل کلی:
else if(condition) statement

در واقع اگر شرط اول نادرست باشد با مراجعه به else if  های بعدی شرط های انان را نیز بررسی کرده تا به شرط درست یا به else  نهایی برسد

پس از انکه متوجه شکل کلی دستورات if  شدیم حالا نوبت به مقایسه دو عدد گرفته شده از کاربر میرسد :
If(x>y) messagebox.show(“X is greater”);

کد بالا مقدار X  و Y  را مقایسه کرده و در صورت درست بودن شرط در یک پیغام دلخواه نتیجه را نمایش میدهد

برای مقایسه حالت دوم که Y  از X  بزرگتر است چون 2 حالت بیشتر در این مقایسه مدنظر نیست از 2 حالت زیر میتوان استفاده کرد:
حالت اول:

Else messagebox.show(“Y is greater”);

حالت دوم :
else if (y>x) messagebox.show(“ y is greater “);

میتوانید دقیقا مقدار عددی هر متغیر را قرار بدهید :
messagebox.show(convert.tostring(y));

توجه کنید اگر کدهای مقاله را Copy  میکنید به دلیل بزرگ و کوچک بودن حروف برنامه از شما ایارد میگیرد که باید حروف اول هر کلمه را بزرگ بنویسید

استفاده از دستور Case

در بسیاری از اواقت ممکن است تعداد مقایسه هایی که نیاز دارید مقدار زیادی باشد که نوشتن کدهای مقایسه با استفاده از دستور If  مشکل و پیچیده میشود برای این منظور از دستور case   باید استفاده شود که شکل کلی ان به صورت زیر میباشد:

switch(n)

}

case 1:

Statement;

Break;

Case 2:

Statement;

Break;

Case 3 :
statement;

Break;

Default:

Statement;

}

قطعه کد بالا دارای قسمت های مختلفی میباشد که هرکدام وظیف خاصی و عمل خاصی را انجام میدهند:
قسمت Switch  کلمه ای کلیدی است که باید در کد حضور داشته باشد

قسمت N  در اصل متغیری است که شما میخواهید انرا با چند مقدار مقایسه کنید

کلمه Case  نیز کلمه ای کلیدی و رزروو شده است

1 در واقع عدد مورد نظر شما یا هر مقداری است که شما میخواهید انرا با N  مقایسه کنید

Satement  در واقع دستور مورد نظر برای اجرا شدن است

Break کلمه ای کلیدی است که اگر این شرط درست نبود از مقایسه خارج شود و به خط بعد برود

کلمه default  حکم else  در if  را دارد که اگر هیچ کدام از دستوارت بالا درست نباشد چه عملی انجام شود!

برای مثال رشته ای  از کاربر گرفته و انرا با 2 رشته مقایسه کنیم

x = (textBox1.Text);

switch (x)

{

case “ali”: MessageBox.Show(“ii”); break;

case “reza”: MessageBox.Show(“ss”); break;

}

کد بالا نشان دهنده املای صحیح در دستوارت است که باید حروف اول هر کلمه بزرگ باشد

کد بالا ابتدا رشته ای از کاربر گرفته و سپس انرا با دو کلمه ali  و reza مقایسه میکند

در کد بالا به دلیل عدم وجود default  اگر هیچ یک از شروط درست نباشد عملی انجام نمیشود

استفاده از دو دستور بالا به صورت ترکیبی:
برای استفاده از دو دستور بالا به صورت ترکیبی باعث میشود تا دو مقایسه پشت سرهم انجام شود یعنی پس از وارد شدن به case  مورد نظر شرط دیگری نیز چک شود

x = (textBox1.Text);

switch (x)

{

case “ali”:(If Statement) ; break;                case “reza”: if (statement) ; break

default:

statement;

}

کنترل ورود و خروج افراد که با استفاده از UserName و password  افراد صورت میگیرد یکی از کاربردی ترین موارد در ساخت برنامه هایی است که به صورت عمومی مورد استفاده قرار میگیرد

به این صورت که فرد با وارد کردن نام کاربری و رمز خود به صفحه مشخصی وارد شده و از برنامه مختص خودش استفاده میکند

در مقاله قبل روشی برای مقایسه مقادیر مختلف توضیح داده شد که با استفاده از ان دستوارت میتوانیم نام و رمز گرفته شده را مقایسه با نام و رمز تعریف شده کنیم

برای این منظور نیاز به فرم اولیه برای دریافت اطلاعات و نیز طراحی فرم های دیگر برای هرکس داریم که بر طبق ان اطلاعات نمایش داده شود

بنابراین اجزای زیر را به فرم اضافه میکنیم:
textbox برای دریافت نام و رمز

Button  برای هدایت کردن به فرم مخصوص پس از چک کردن و button  خروج

2 عدد label برای نمایش محل رمز و نام کاربری

پس از اینکه تمامی موارد را روی فرم خود اضافه کردید نوبت به کددهی میرسد

ابتدا باید 1 متغیر از نوع رشته تعریف کنیم تا نام را بگیرد

و نیز 1 متغیر عددی برای رمز

Int b;

String a;

سپس نوبت به مقداردهی متغیرها میرسد

a=(textbox1.text);

b=convert.toint32(textbox2.text);

کد بالا دو رشته دریافتی که همان رمز و نام هستند را به متغیرها مقداردهی میکند

سپس باید به مقایسه انها بپردازیم

در این مثال کاربران مجاز سیستم 4 نفر هستند با نام های ali reza hamed mohsen

توجه کنید که نام ها کاملا اختیاری بوده

و نیز رمز هریک به ترتیب  100 200 300 400 میباشد که این نیز اختیاری میباشد

در button 1 برای خروج کد close(); را مینویسیم

در button 2 کد های زیر که عمل مقایسه و نمایش فرم جدید را بر عهده دارد نوشته میشود

توجه کنید برای اضافه کردن فرم جدید از منوی project  گزینه add windows form  را بزنید و سپس نام و Ok  را انتخاب کنید

a = (textBox1.Text);

b = Convert.ToInt32(textBox2.Text);

دو کد بالا نام و رمز کاربری را دریافت میکند

برای تعریف و شناساندن فرم های جدید به فرم پایه خود از حالت کلی زیر استفاده میشود :

subForm myNewForm = new subForm();

myNewForm.Show ();

در واقع subform  فرم زمینه شما

Newform  فرم جدید شما

Show  خاصیت نمایش فرم شما میباشد

اگر فرم خودرا تعریف نکنید خاصیت show  وجود نخواهد داشت

پس از اضافه کردن 4 فرم برای 4 نفر نوبت به تعریف انان میرسد

Form2 Form2 = new Form2();

تعریف فرم 2

Form3 Form3 = new Form3();

تعریف فرم 3

Form4 Form4 = new Form4();

تعریف فرم 4

Form5 Form5 = new Form5();

پس از انکه تمامی فرم هارا تعریف کردیم نوبت به عمل مقایسه و نمایش انان میرسد

switch (a)

{

case “ali”: if (b == 100) Form2.Show(); break;

عمل مقایسه در کد بالا ابتدا نام ali  را چک کرده و سپس رمز ان را

case “reza”: if (b == 200) Form3.Show(); break;

case “hamed”: if (b == 300) Form4.Show(); break;

case “mohesn”: if (b == 400) Form5.Show(); break;

default: MessageBox.Show(“not found”); break;

{

در اخر اگر هیچ یک از موارد درست نباشد با پیغام دلخواه نتیجه را اعلام میکند

برای انکه نام فرم هرکس مطابق با نام کاربری ان باشد از کدزیر استفاده میشود

Form2.text در واقع خاصیت نام فرم میباشد

اگر انرا مقداردهی کنیم نمایش اسم ان تغییر میکند

Form2.text=a;

چون a نام  فرد مورد نظر است نام فرم همانند ان میشود

case “ali”: if (b == 100) Form2.Show(); Form2.Text = a; ; break;

case “Reza”: if (b == 100) Form2.Show(); Form2.Text = a; ; break;

case “Hamed”: if (b == 100) Form2.Show(); Form2.Text = a; ; break;

case “mohsen”: if (b == 100) Form2.Show(); Form2.Text = a; ; break;

در مقاله بعدی نحوه کار با حلقه های تکرار را شرح میدهیم

دیدگاه خود را وارد کنید
تعداد دیدگاه ها : 2 دیدگاه
  1. salam
    amuzeshatun kheli khube
    age lotf konid file PDF amuzeshatun ro ham zireshun bezarid ke betunim onaro negah darim ke vaghtaee ke dasresi be net nadarimmamnun misham

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