با سلام و درود به دوستداران زبان سیشارپ. در بخش قبلی آموزش به شرح کاراکترهای خاص و تبدیل انواع به یکدیگر پرداختیم. در این بخش به آموزش یک مبحث ساده اما مهم در زبانهای برنامه نویسی میپردازیم و آن هم عملگرها هستند. همانطور که میدانید، ما در این سری از آموزشها به آموزش زبان برنامهنویسی #C پرداختهایم؛ در این قسمت نیز به بررسی عملگرها در سی شارپ خواهیم پرداخت. با ما همراه باشید.
عملگرها در سی شارپ
عملگرها در سی شارپ به دستههای مختلفی تقسیم میشوند.
- عملگرهای منطقی
- عملگرهای ریاضی
- عملگرهای بیتی
- عملگرهای مقایسهای
- عملگرهای تخصیصی
باید توجه داشت که عملگرها در سی شارپ سه نوع هستند.
- عملگرهایی که به یک عملوند نیاز دارند (Unary).
- عملگرهایی که به دو عملوند نیاز دارند (Binary).
- عملگرهایی که به سه عملوند نیاز دارند (Ternary).
عملگرهای ریاضی
به مثالهای زیر توجه کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
int number1 = 23; int number2 = 15; Console.WriteLine( number1 + number2 ); Console.WriteLine( number1 - number2 ); Console.WriteLine( number1 * number2 ); Console.WriteLine( number1 / number2 ); Console.WriteLine( number1 % number2 ); Console.WriteLine( +number1 ); Console.WriteLine( -number1 ); Console.WriteLine( number1++ ); Console.WriteLine( number1-- ); |
1 2 3 4 5 6 7 8 9 10 |
number1 + number2 = 38 number1 - number2 = 8 number1 * number2 = 345 number1 / number2 = 1 number1 % number2 = 8 +number1 = 23 -number1 = -23 number1++ = 24 number1-- = 22 |
عملگر + اگر دارای عملوندهایی از نوع رشته باشد باعث الحاق رشتهها به یکدیگر میشود. عملگرهای ++ و — هم میتوانند قبل از متغیر و هم بعد از متغیر بیایند. به مثال زیر دقت کنید:
1 2 3 4 5 6 7 |
int num1 = 10; num2 = num1++; Console.WriteLine(num2); num1 = 10; num2 = ++num1; Console.WriteLine(num2); |
1 2 3 |
10 11 |
عملگرهای مقایسهای
از این دسته از عملگرها در دستورات شرطی بیشتر استفاده میشود. حاصل همهی عبارتهای بالا از نوع بولی است.
به مثالهای زیر توجه کنید:
1 2 3 4 5 6 7 8 9 10 |
int number1 = 23; int number2 = 15; Console.WriteLine( number1 == number2 ); Console.WriteLine( number1 != number2 ); Console.WriteLine( number1 > number2 ); Console.WriteLine( number1 < number2 ); Console.WriteLine( number1 >= number2 ); Console.WriteLine( number1 <= number2 ); |
1 2 3 4 5 6 7 |
number1 == number2 = False number1 != number2 = True number1 > number2 = True number1 < number2 = False number1 >= number2 = True number1 <= number2 = False |
عملگرهای منطقی
عملوند های عمگلرهای منطقی باید از نوع بولین باشند و حاصل هم از نوع بولی است.
نمونه کدهای زیر نشانگر این نوع از عملگرها در سی شارپ هستند:
1 2 3 4 5 6 7 |
bool num1 = true; bool num2 = false; Console.WriteLine(num1 && num2); Console.WriteLine(num1 || num2); Console.WriteLine(!num1); |
1 2 3 4 |
false true false |
عملگرهای تخصیصی
این نوع از عملگرها مقدار متغیر سمت راست خود را در متغیر سمت چپ قرار میدهند.
همانطور که در مثالهای زیر میبینید، حاصل تمام عبارات بالا در متغیر سمت چپی ریخته میشود.
1 2 3 4 5 6 7 8 |
int num1 = 30; int num2 = 15; Console.WriteLine(num1 += num2); Console.WriteLine(num1 -= num2); Console.WriteLine(num1 *= num2); Console.WriteLine(num1 /= num2); Console.WriteLine(num1 %= num2); |
1 2 3 4 5 6 |
num1 += num2 = 38 num1 -= num2 = 15 num1 *= num2 = 450 num1 /= num2 = 2 num1 %= num2 = 0 |
عملگرهای بیتی
این عملگرها به ما اجازهی دستکاری داده متغیرها در سطح بیت را میدهند.
در مثالهای زیر، کاربرد این نوع از عملگرها در سی شارپ را مشاهده میکنید:
1 2 3 4 5 6 7 |
int num1 = 5; // num1 = 0101 int num2 = 4; // num2 = 0100 Console.WriteLine(num1 & num2); Console.WriteLine(num1 | num2); Console.WriteLine(num1 ^ num2); |
1 2 3 4 |
num1 & num2 = 4 // Result = 0100 num1 | num2 = 5 // Result = 0101 num1 ^ num2 = 1 // Result = 0001 |
تقدم عملگرها
عملگرها در سیشارپ دارای حق تقدم هستند. و در محاسباتی که بیش از دو عملوند حضور دارند، حق تقدم عملگرها مشخص میکند ابتدا کدام عملگر اثر کند.
برای ایجاد خوانایی بیشتر در عباراتی که دارای چندین عملگر هستند میتوان از پرانتز استفاده کرد. در قطعه کد زیر این موضوع به وضوح نشان داده شده:
1 2 3 4 |
int number = 0; number = (1 + 9) * (3 % 2) % (8 - (6 * 9)); Console.WriteLine(number); |
1 2 |
10 |
دوستان این بخش هم به پایان رسید. تا بخش بعدی و آموزشی دیگر شما را به پروردگار میسپارم. برای استفاده از سایر آموزشها با رزدینو همراه باشید.
یک پاسخ
Int a=4;
Int b=9;
Console.WriteLine(a+++b-a*b-a++)
Result :-37
طبق گفته ی شما پلاس پلاس بعد از متغیر به صورت پیشوندی الویت کمتری داره و آخر سر اضافه میشود
در حالی که توی این مسئله
ابتدا پلاس پلاس اولی درنظر گرفته شده … ولی پلاس پلاس دومی درنظر گرفته نشده
تفاوت در چه چیزی هست که توی اینجا پلاس پلاس در نظر گرفته شده؟؟؟