عملگرها و عبارات
y += x;
|
y = y + x;
| |
x -= 5;
|
x = x - 5;
| |
x /= y;
|
x = x / y;
| |
price *= units + 1;
|
price = price * (units+1);
|
=====کاهش و افزایش=====
بعضی از عبارات را میتوان خلاصهتر نوشت. عملگر کاهش (–) و عملگر افزایش (++) مقدار یک متغیر را یک واحد کاهش یا افرایش میدهند. این عملگرها به ترتیب معادل 1=- و 1=+ هستند.
به دو مثال زیر توجه کنید:
x = 3; y = x++; // x is 4 and y is 3
x = 3; y = ++x; // x is 4 and y is 4
در دو مثال بالا مقدار نهایی y متفاوت است. در صورتی که عملگر کاهش یا افزایش بعد از متغیر بیاید، حاصل عبارت برابر با مقدار اولیهی متغیر میشود، ولی در صورتی که این عملگرها قبل از متغیر استفاده شوند، حاصل عبارت برابر با مقدار تغییر کردهی متغیر میشود.
=====عملگرهای مقایسه=====
عملگرهای مقایسه در صورت برقراری رابطهای بین LHS و RHS مقدار true و در غیر این صورت مقدار false را بر میگردانند.
^ عملگر ^ توضیح ^
|
LHS == RHS
| اگر LHS با RHS برابر باشد | |
LHS != RHS
| اگر LHS با RHS فرق کند | |
LHS < RHS
| اگر LHS کوچکتر از RHS باشد | |
LHS > RHS
| اگر LHS بزرگتر از RHS باشد | |
LHS <= RHS
| اگر LHS کوچکتر از یا مساوی با RHS باشد | |
LHS >= RHS
| اگر LHS بزرگتر یا مساوی با RHS باشد | به مثال زیر توجه کنید.
bool a = 1 == 2; // a is false bool b = a == false; // b is true bool c = a < b; // c is true bool d = 4 - 1 <= 3; // d is true bool e = 3 * 4 == 2 * 6; // e is true bool f = 2 + 3 * 5 == (2 + 3) * 5; // f is false
توجه کنید که حاصل عملگرهای مقایسه از نوع bool میباشد.
=====عملگرهای منطقی=====
سه عملگر منطقی زیر برای ترکیب شرطها و نوشتن عبارات شرطی پیچیدهتر وجود دارند.
^ عملگر ^ توضیح ^
|
LHS && RHS
| اگر LHS و RHS هر دو true باشند | |
LHS || RHS
| اگر دست کم یکی از LHS و RHS مقدارش true باشد | |
!RHS
| مقدار نقیض RHS (این عملگر یک ورودی دارد) | به مثال زیر توجه کنید.
bool a = 2 < 3; // a is true bool b = 2 > 3; // b is true bool c = a && b; // c is false bool d = a || b; // d is true bool e = !c; // e is true bool f = e && d; // f is true
=====عملگر شرطی===== این عملگر از سه بخش تشکیل شده است.
condition ? result1 : result2
بخش اول یک عبارت شرطی condition است که اگر درست باشد، حاصل عبارت برابر با result1 میشود و در غیر این صورت حاصل عبارت برابر با result2 میشود.
به مثال زیر توجه کنید.
int x = 5; bool odd = x % 2 != 0? true: false; // odd is true bool even = x % 2 == 0? true: false; // even is false int sign = x < 0? -1: x > 0? 1: 0; // sign is 1 int a = 4; int b = 3; int minimum = a < b? a: b; // minimum is 3
میتوان عملگر شرطی را به صورت زنجیرهای از چند شرط به کار برد. =====عملگرهای بیتی===== عملگرهای بیتی بر حسب الگوی بیتهای نشان دهندهی ورودیهایشان، خروجیای با بیتهای تغییر یافته تولید میکنند. با مثال زیر و رجوع به بهش عملگرهای منطقی میتوانید کارکرد دقیق این عملگرها حدس بزنید.
int a = 60; // 60 = 0011 1100 int b = 13; // 13 = 0000 1101 int c = 0; c = a & b; // 12 = 0000 1100 c = a | b; // 61 = 0011 1101 c = a ^ b; // 49 = 0011 0001 c = ~a; // -61 = 1100 0011 c = a << 2; // 240 = 1111 0000 c = a >> 2; // 15 = 0000 1111
برای مطالعهی بیشتر به صفحهی عملیات بیتی در ویکیپدیا مراجعه کنید. =====عملگر تبدیل نوع===== با این عملگر میتوان نوع یک مقدار را تبدیل به نوعی دیگر کرد. این عملگر با نوشتن نوع مقصد در یک جفت پرانتز و نوشتن مقدار مبدا پس از آن، استفاده میشود. به مثال زیر توجه کنید.
int i; double d = 3.14; i = (int) f; // i is 3 int a1 = 0; bool b1 = (bool) a1; // b1 is false int a2 = -5; bool b2 = (bool) a2; // b2 is true
پیشنهاد میشود تبدیلهای مقادیر مختلف را با نوشتن قطعه کدهایی به شکل بالا آزمایش کنید و به صورت تجربی یاد بگیرید.