آموزش برنامه نویسی

آموزش سی شارپ

آموزش سی شارپ

پربیننده ترین مطالب
پیوندهای روزانه

در قسمت های قبلی سری آموزشی سی شارپ، با انواع نوع های داده آشنا شدیم. در ادامه قصد داریم به بررسی انواع عملگرهای زبان سی شارپ بپردازیم. عملگرها، علامت هایی هستند که بر روی یک یا چند عبارت کار خاصی را انجام می دهند. برای مثال عملگر + در زبان سی شارپ برای جمع دو عدد یا پیوند دو رشته استفاده می شود. تعداد عملگرهای موجود بسیار زیادند که در این قسمت ما پنج دسته از عملگرها را بررسی خواهیم کرد و در انتها به بررسی حق تقدم عملگرها خواهیم پرداخت:

  1. عملگرهای محاسباتی
  2. عملگرهای رابطه ای
  3. عملگرهای منطقی
  4. عملگرهای بیتی
  5. عملگرهای انتصاب


عملگرهای محاسباتی


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

1. عملگر +: برای جمع دو عدد استفاده می شود:

int n1 = 10;
int n2 = 15;
int result = n1 + n2; // will give 25

int result2 = 23+10; // will give 33

2. عملگر -: عملیات تفریق را انجام می دهد:

int result = 23 - 13; will give 10

3. عملگر *: عملیات ضرب را انجام می دهد:

int result = 2 * 5; // will give 10

4. عملگر /: عملیات تقسیم را انجام می دهد:

int result = 18 / 2; // will give 9

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

5. عملگر %: باقیمانده تقسیم دو عدد را برای ما بر می گرداند:

int result = 9 % 2; // will give 1

6. عملگر ++: این عملگر به مقدار موجود یک عدد اضافه می کند:

int num = 12;
num++; // will give 13

کد بالا معادل کد زیر است:

int num = 12;
num = num + 1;

7. عملگر --: این عملگر از مقدار موجود یک عدد کم می کند:

int num = 12;
num--; // will give 11

کد بالا معادل کد زیر است:

int num = 12;
num = num - 1;


عملگرهای رابطه ای


در قسمت قبلی با نوع داده bool که مقدار true یا false را قبول می کرد آشنا شدیم. این عملگرها، برای مقایسه بین دو عبارت یا مقدار استفاده می شوند و نتیجه ای که بر می گردانند از نوع Boolean است. در این بخش فرض کنید دو متغیر تعریف کردیم با نام های num1 با مقدار 12 و num2 با مقدار 15. مثال های این بخش را بر روی این دو متغیر نشان خواهیم داد:

int num1 = 12;
int num2 = 15;

1. عملگر ==: این عملگر بررسی می کند که دو عبارت با هم برابر هستند یا خیر. در صورت برابر بودن مقدار true و در غیر اینصورت مقدار false بر می گرداند:

bool result1 = num1 == 12; // will give true
bool result2 = num2 == 18; // will give false

2. عملگر =!: این عملگر بررسی می کند که دو عبارت مخالف یکدیگر هستند یا خیر:

bool result1 = num1 != 12; // will give false
bool result2 = num2 != 10; // will give true

3. عملگر >: این عملگر در صورتی true بر میگرداند که عملوند سمت چپ کوچکتر از عملوند سمت راست باشد در غیر اینصورت مقدار false بر می گرداند:

bool result = num1 < num2; // will give true

3. عملگر =>: این عملگر در صورتی true بر میگرداند که عملوند سمت چپ کوچکتر یا مساوی عملوند سمت راست باشد در غیر اینصورت مقدار false بر می گرداند:

bool result1 = num1 <= num2; // will give true
bool result2 = num2 >= 18; // will give false

4. عملگر <: این عملگر در صورتی true بر میگرداند که عملوند سمت چپ بزرگتر از عملوند سمت چپ باشد:

bool result = num1 > num2; // will give false

5. عملگر =<: این عملگر در صورتی true بر میگرداند که عملوند سمت چپ بزرگتر یا مساوی از عملوند سمت راست باشد:

bool result1 = num1 >= num2; // will give false


عملگرهای منطقی


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

1. عملگر &&: این عملگر یا AND در صورتی مقدار True بر می گرداند که هر دو عملوند مقدار true بر گردانند:

var result = num1 > 10 && num2 < 20; // will give true

دقت کنید که num1 بزرگتر از 10 می باشد، پس نتیجه true است، همچنین num2 کوچکتر از 20 است، پست نتیجه این بخش هم true است، و true && true مقدار true بر می گرداند. حالت های مختلف && را زیر مشاهده می کند:

true && true => true
true && false => false
false && true => false
false && false => false

2. عملگر ||: این عملگر یا OR در صورتی مقدار True بر می گرداند که یکی از عملوندها نتیجه true داشته باشد:

var result = num1 > 10 || num2 > 20; // will give true

دقت کنید که num1 بزرگتر از 10 می باشد، پس نتیجه true است، اما num2 بزرگتر از 20 نیست، پست نتیجه این false است، در نتیجه true
Image
را زیر مشاهده می کند:

true || true => true
true || false => true
false || true => true
false || false => false

3. عملگر !: این عملگر یا NOT، نتیجه یک عبارت Boolean را برعکس می کند، یعنی اگر یک عبارت نتیجه true برگرداند، این عملگر نتیجه را به false تبدیل می کند:

var r1 = !(num1 > 10); // will give false
var r2 = !(num2 > 20); // will give true


عملگرهای بیتی


این عملگرها، بر روی بیت ها اعمال می شوند. یعنی عملیات مربوط به عملگر به صورت بیت به بیت انجام می شود. در سیستم باینری، عبارات به صورت اعداد 0 و 1 نمایش داده می شوند. به هر یک از این اعداد یک بیت گفته می شود. دو عدد 2 و 6 را فرض کنید، عدد 2 معادل بانتری 010 و عدد 6 معادل باینری 110 می باشد. بر اساس بیت های معادل، یک نتیجه معادل خواهند داشت. در ادامه به بررسی انواع عملگرهای بیتی خواهیم پرداخت:

1. عملگر &: در قسمت عملگرهای رابطه ای در مورد عملگر && صحبت کردیم و گفتیم در صورتی که هر دو طرف عملگر true باشند، خروجی true خواهد بود. حال، برای عملگر & در صورتی که هر دو بیت 1 باشند، خروجی 1 خواهد بود. در غیر اینصورت خروجی 0 خواهد شد. نام این عملگر AND می باشد. مثال را مبتنی بر معادل باینری اعداد 2 و 6 که در بالا در مورد آنها صحبت کردیم، بررسی خواهیم کرد:

2 = 0 1 0
6 = 1 1 0
& = 0 1 0

همانطور که مشاهده می کنید، تنها بیت وسط یا دوم که هر دو بیت 1 هستند، 1 شده و در نتیجه خروجی ما، عدد 2 خواهد بود. کد سی شارپ:

int num1 = 2;
int num2 = 6;
int result = num1 & num2; // will give 2

2. عملگر |: نام دیگر این عملگر OR می باشد و خروجی آن، در صورتی که یکی از بیت ها معادل 1 باشد، 1 خواهد بود، در غیر اینصورت بیت نتیجه 0 خواهد شد:

2 = 0 1 0
6 = 1 1 0
| = 1 1 0

همانطور که مشاهده می کنید، نتیجه OR بیت های سوم و دوم که1 هستند، 1 شده و در نتیجه خروجی ما، عدد 6 خواهد بود. کد سی شارپ:

int num1 = 2;
int num2 = 6;
int result = num1 | num2; // will give 6

3. عملگر ^: نام دیگر این عملگر XOR می باشد و بیت خروجی در صورتی 1 خواهد بود که بیت های معادل با یکدیگر تفاوت داشته باشند:

2 = 0 1 0
6 = 1 1 0
^ = 1 0 0

کد سی شارپ:

int num1 = 2;
int num2 = 6;
int result = num1 ^ num2; // will give 4

سایر عملگر های بیتی به صورت خلاصه عبارتند از:

  1. عملگر ~: کار مکمل یک در سیستم باینری را انجام می دهد.
  2. عملگر >>: عملیات شیفت به چپ را انجام می دهد.
  3. عملگر <<: عملیات شیفت به راست را انجام می دهد.


عملگرهای انتساب


در قسمت تعریف متغیرها، اشاره کردیم که با تعریف یک متغیر، می توان مقداری را داخل آن ذخیره کرد:

var num = 12;

عملگرهای انتساب جهت ریختن مقدار داخل یک متغیر و یا تغییر مقدار آن استفاده می شوند. در این قسمت به بررسی عملگرهای انتساب خواهیم پرداخت:

1. عملگر =: عملیات انتساب ساده را انجام می دهد. یعنی مقدار سمت راست را داخل عملوند سمت چپی قرار می دهد که نمونه آن را در مثال بالا دیدیم.

2. عملگر =+: این عملگر، مقدار سمت را به مقدار موجود عملوند سمت چپ اضافه کرده و نتیجه را داخل عملوند سمت چپ میریزد:

var num = 12;
num += 3; // will give 15 => num = num + 3

3. عملگر =-: این عملگر، مقدار سمت را از مقدار موجود عملوند سمت چپ کم کرده و نتیجه را داخل عملوند سمت چپ میریزد:

var num = 12;
num -= 3; // will give 9 => num = num - 3

4. عملگر =*: این عملگر، مقدار سمت را در مقدار موجود عملوند سمت چپ ضرب کرده و نتیجه را داخل عملوند سمت چپ میریزد:

var num = 12;
num *= 2; // will give 24 => num = num * 2

5. عملگر =/: این عملگر، مقدار سمت را از مقدار موجود عملوند سمت چپ تقسیم کرده و نتیجه را داخل عملوند سمت چپ میریزد:

var num = 12;
num /= 2; // will give 6 => num = num / 2

6. عملگر =%: این عملگر، باقیمانده تقسیم عملوند سمت چپ بر مقدار سمت راست را در عملوند سمت چپ میریزد:

var num = 9;
num %= 2 ==> will give 1 => num = num % 2;

سایر عملگرهای انتسابی به شرح زیر می باشند:

  1. عملگر =>>: شیفت به چپ و انتساب
  2. عملگر =<<: شیفت به راست و انتساب
  3. عملگر =&: انجام عملیات AND بیتی و انتساب
  4. عملگر =|: انجام عملیات OR بیتی و انتساب
  5. عملگر =^: انجام عملیات XOR بیتی و انتساب


حق تقدم عملگرها


یکی از مباحثی که زمان نوشتن برنامه ها، باید به آن خیلی توجه کرد حق تقدم عملگرها می باشد. در عبارتی که چندین عملگر در آن استفاده شده باشد، انجام عملیات ها بر اساس حق تقدم عملگر ها انجام می شود. برای مثال، عبارت زیر را در نظر بگیرید:

var result = 2 + 2 * 0;

جوب شما به نتیجه عبارت بالا چیست؟ شاید 0، شایدم 2! اما نتیجه صحیح کدام است؟ عدد 2 نتیجه عبارت بالا می باشد. زیر حق تقدم عملیات ضرب بالاتر از عملیات جمع است، پس ابتدا عملیات ضرب انجام شده و نتیجه با عدد دو جمع می شود. اما فرض کنید عبارت بالا را به صورت زیر تغییر دادیم:

var result = (2 + 2) * 0;

با تغییر بالا، نتیجه عبارت 0 خواهد بود. زیرا حق تقدم عبارت داخل پرانتز، بیشتر از ضرب می باشد، پس ابتدا عدد 2 با عدد 2 جمع شده و سپس نتیجه در 0 ضرب می شود.

در زیر حق تقدم ها را مشاهده می کنید. حق تقدم ها از درجه زیاد به کم نوشته شده اند. همچنین توجه کنید در هر سطر حق تقدم ها از چپ به راست می باشند:

() , []
! , ~ , ++ , --
* , / , %
+ , -
<< , >>
< , <= , > , >=
== , !=
& , ^ , | , && , ||

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

منبع:
programming.itpro.ir
  • متین تیماسی ، مبین خسروی و عمران جودکی

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی