Tayinlash operatsiyalari va operatsiyalarning ustuvorligi
Nihoyat, topshiriq operatsiyalarini ko'rib chiqing, ular asosan oddiy topshiriqning boshqa operatsiyalar bilan kombinatsiyasi:
=
oddiygina bir qiymatni boshqasiga tenglashtiradi: c = b;
+ =
c + = b; (c o'zgaruvchisi c va b qo'shilishi natijasida beriladi)
- =
c- = b; (c o'zgaruvchisi c dan b ayirish natijasi bilan belgilanadi)
* =
c * = b; (c o'zgaruvchisi c va b ko'paytmasining natijasi bilan belgilanadi)
/ =
c / = b; (c o'zgaruvchisi c ni b ga bo'lish natijasi bilan belgilanadi)
~ / =
c ~ / = b; (c o'zgaruvchisi c ni b ga butun songa bo'lish natijasi bilan belgilanadi)
% =
c% = b; (c o'zgaruvchisi c ning b ga bo'linishining qolgan qismi bilan belgilanadi)
& =
c & = b; (c o'zgaruvchiga c & b qiymati beriladi)
| =
c | = b; (c o'zgaruvchiga c | b qiymati beriladi)
^ =
c ^ = b; (c o'zgaruvchiga c ^ b qiymati beriladi)
<< =
c << = b; (c o'zgaruvchiga c << b qiymati beriladi)
>> =
c >> = b; (c o'zgaruvchiga c >> b qiymati beriladi)
?? =
c ?? = b; (agar c o'zgaruvchisi nol bo'lsa, u holda unga b o'zgaruvchining qiymati beriladi; agar c o'zgaruvchisi nol bo'lmasa, u o'z qiymatini saqlab qoladi)
Operatsiyalarga misollar:
1
2
3
4
5
6
7
8
|
int a = 5;
a += 10; // 15
a -= 3; // 12
a *= 2; // 24
a ~/= 6; // 4
a <<= 4; // 64
a >>= 2; // 16
print(a); // 16
|
Operatsiyalarning ustuvorligi
Operatsiyalar bilan ishlashda ularning ustuvorligini tushunish muhimdir, buni quyidagi jadvalda tasvirlash mumkin:
expr++ expr--
|
-expr !expr ~expr ++expr --expr
|
* / % ~/
|
+ -
|
<< >> >>>
|
&
|
^
|
|
|
< > <= >= as is is!
|
== !=
|
&&
|
||
|
??
|
? : (тернарный оператор)
|
.. (spread-оператор)
|
= += -= *= /= %= ~/= &= ^= |= <<= >>= (операторы присваивания)
|
Ushbu jadvaldagi operator qanchalik baland bo'lsa, uning ustuvorligi shunchalik yuqori bo'ladi. Bunda qavslar ifodada ishlatiladigan amalning ustuvorligini oshiradi.
|