В завершении рассмотрим операции присваивания, которые в основном представляют комбинацию простого присваивания с другими операциями:
=
просто приравнивает одно значение другому: c=b;
+=
c+=b;
(переменной c присваивается результат сложения c и b)
-=
c-=b;
(переменной c присваивается результат вычитания b из c)
*=
c*=b;
(переменной c присваивается результат произведения c и b)
/=
c/=b;
(переменной c присваивается результат деления c на b)
%=
c%=b;
(переменной c присваивается остаток от деления c на b)
&=
c&=b;
(переменной c присваивается значение c&b)
|=
c|=b;
(переменной c присваивается значение c|b)
^=
c^=b;
(переменной c присваивается значение c^b)
<<=
c<<=b;
(переменной c присваивается значение c<<b)
>>=
c>>=b;
(переменной c присваивается значение c>>b)
>>>=
c>>>=b;
(переменной c присваивается значение c>>>b)
Примеры операций:
int a = 5; a += 10; // 15 a -= 3; // 12 a *= 2; // 24 a /= 6; // 4 a <<= 4; // 64 a >>= 2; // 16 System.out.println(a); // 16
При работе с операциями важно понимать их приоритет, который можно описать следующей таблицей:
expr++ expr-- |
++expr --expr +expr -expr ~ ! |
* / % |
+ - |
<< >> >>> |
< > <= >= instanceof |
== != |
& |
^ |
| |
&& |
|| |
? : (тернарный оператор) |
= += -= *= /= %= &= ^= |= <<= >>= >>>= (операторы присваивания) |
Чем выше оператор в этой таблице, тем больше его приоритет. При этом скобки повышают приоритет операции, используемой в выражении.