آموزش سی شارپ C# قسمت پنجم

1395/1/12 محمد احمدی 5729

سلام عرض میکنم خدمت دوستان

محمد احمدی هستم . با جلسه پنجم آموزش برنامه نویسی به زبان سی شارپ در خدمتتون هستم .

جلسه قبل چهار دسته از عملگرها رو به شرح زیر نام بردیم و دو دسته اول رو توضیح دادیم :

  1. عملگرهای محاسباتی
  2. عملگرهای ترکیبی
  3. عملگرهای رابطه ای ( مقایسه ای )
  4. عملگرهای منطقی و بیتی

خب قبل ازچیز باید بگم که عملگرهای دیگه ای هم هست . مثل عملگر شرطی که امشب توضیح میدیم !

پس به موارد بالا یک مورد دیگه هم اضافه میکنیم :

  1. عملگر شرطی

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

عملگرهای مقایسه ای :

  1. > بزرگتر
  2. >= بزرگتر یا مساوی
  3. < کوچکتر
  4. <= کوچکتر یا مساوی
  5. == مساوی ( دقت کنید دوتا مساوی هست )
  6. != نا مساوی

با استفاده از این عملگرها میتونیم مقادیر رو با هم مقایسه کنیم . مثلا میتونیم دو عدد رو با هم مقایسه کنیم تا عدد بزرگتر یا کوچکتر رو بدست بیاریم ! یا اینکه یک نام کاربری و یک کلمه عبور از کاربر دریافت کنیم و اگه با نام کاربری و کلمه عبوری که ما توی سیستم تعریف کردیم یکی بود , اجازه بدیم کاربر وارد برنامه بشه !

یک مثال دیگه : میتونیم توی یک سیستم حقوق و دستمزد , برحسب تعداد فرزندان و سن و مدرک تحصیلی اشخاص ( که توی سیستم قرار داره ) حقوق هر کارمند رو بیشتر یا کمتر کنیم !

نکته مهم : دقت کنید که توی عملگرهای ( بزرگتر مساوی , کوچکتر مساوی , نامساوی ) همیشه علامت = بعد از علامت ها ( < , > , ! ) قرار میگیره !

مثال :

x > y

4 < 2

5 == y

x != 3

z >= q

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

عملگر شرطی ? :

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

ساختار عملگر شرطی ? :

var = (Condition) ? True : False ;

عملگر شرطی ? به این صورت عمل میکنه که عبارت Condition رو بررسی و مقایسه میکنه ( مثلا x>y ) . اگه نتیجه مقایسه صحیح باشه مقدار بعد از علامت سوال ? رو توی متغیر var قرار میده و اگه غلط باشه , مقدار بعد از دونقطه : رو توی متغیر var قرار میده !

( شاید خوب متوجه نشده باشید . با یک مثال بهتر متوجه میشید )

مثال : برنامه ای بنویسید که دو متغیر عددی را بررسی کند و عدد بزرگتر را به کاربر نمایش دهد .

جواب :

int x = 10, y = 20, max;

max = (x > y) ? x : y;

MessageBox.Show(max);

توی برنامه بالا اگه مقدار x بزرگتر باشه , مقدار x رو توی max قرار میده و اگر x کوچکتر باشه مقدار y رو توی max میریزه !

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

دستورات شرطی :

دستورات شرطی تقریبا ( تقریبا ) کار عملگر شرطی رو انجام میدن . با این تفاوت که دستورات شرطی کامل تر هستن و قدرت بیشتری رو به ما میدن

ساختاردستور شرطی if :

ساختار اول :

if(condition)

        Code;

یا

if(Condition)

{

        Code;

        Code;

        . . . ;

}

خب اگه دقت کنید دو مثال هست که به مثال اول دستور شرطی خطی و به مثال دوم دستور شرطی بلاکی گفته میشه .

وقتی که بعد از هر شرط تنها یک دستور رو میخوایم اجرا کنیم از دستور شرطی خطی استفاده میکنیم . در واقع اگه مقدار شرط درون if صحیح باشه , اولین دستور اجرا میشه و اگه غلط باشه اجرا نمیشه !!

نکته : وقتی که میخوایم یک شرط با چند دستور بنویسیم , دستورات رو درون بلاک مینویسیم . شروع و پایان بلاک باید با { و } مشخص بشه !

ساختار دوم :

if (Condition)

        Code;

else

        Code;

یا

if (Condition)

{

        Code;

        Code;

        . . . ;


}

else

{

        Code;

        Code;

        . . . ;

}

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

یک وقت هایی هست که ما میخوایم یک شرط رو بررسی کنیم و در صورت صحیح بودن یک سری دستورات و در صورت غلط بودن یک سری دستورات دیگه رو اجرا کنیم !

اگه بخوایم همون مثال نام کاربری و کلمه عبور رو یک مقدار کامل تر کنیم اینطوری پیش میریم : اگه نام کاربری درست بود که برنامه رو برای کاربر اجرا میکنیم و اگه غلط بود , یک پیغام مناسب مبنی بر غلط بودن یوزر یا پسورد به کاربر نشون میدیم .

پس اینجا ساختار دوم به کارمون میاد . توی ساختار دوم در صورتی که شرط صحیح باشه , خط یا بلاک بعد از if اجرا میشه و در صورتی که شرط غلط باشه , خط یا بلاک بعد از else اجرا میشه

ساختار سوم :

if (Condition)

Code;

elseif (Condition2)

        Code;

elseif (Condition2)

        Code;

else

        Code;   

یا

if (Condition)

{

        Code;

        Code;

        . . . ;

}

elseif (Condition2)

{

        Code;

        Code;

        . . . ;

}

elseif (Condition2)

{

        Code;

        Code;

        . . . ;

}

else

{

        Code;

        Code;

        . . . ;

}

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

ولی اگه بخوایم در صورت غلط بودن شرط اول , یک یا چند شرط دیگه رو بررسی کنیم , باید از ساختار سوم استفاده بشه .

یک مثال میزنم : فرض کنید میخوایم یک نمره رو از کاربر دریافت کنیم و بررسی کنیم که توی کدوم یکی از رنج های ( بد , متوسط , خوب , عالی ) هست . اینجا به چندتا بررسی مختلف نیاز داریم . یعنی اگه نمره بین 0 تا 10 بود پیغام "بد" و اگه بین 10 تا 14 بود پیغام " متوسط " و اگه بین 14 تا 17 بود " خوب " و در نهایت اگه بین 17 تا 20 بود پیغام "عالی" به کاربر نشون داده بشه . اگه نمره زیر 0 و یا بیشتر از 20 بود هم باید پیغامی مبنی بر اینکه عدد اشتباه وارد شده به کاربر نشون داده بشه

اگه بخوایم مثال بالا رو بصورت کد ببینیم :

if (x < 0)

MessageBox.Show("عددواردشده صحیح نمیباشد !");

elseif (x <= 10)

MessageBox.Show("بد");

elseif (x <= 14)

MessageBox.Show("متوسط");

elseif (x <= 17)

MessageBox.Show("خوب");

elseif (x <= 20)

MessageBox.Show("عالی");

else

MessageBox.Show("عددواردشده صحیح نمیباشد !");

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

آیکن دانلود دانلود PDF قسمت پنجم آموزش سی شارپ C#

کانال تلگرام