Составные арифметические операции с присваиванием

В Java имеются специальные операции, которые можно являются объединением арифметической операции с операцией присваивания. Как вы, вероятно, знаете, операторы вроде показанного ниже в программах встречаются достаточно часто:

а = а + 4;

В Java этот оператор можно записать следующим образом:

а += 4;

В этой версии оператора использована составная операция присваивания +=. Оба оператора выполняют одно и то же действие: они увеличивают значение переменной а на 4. А вот еще один пример:

а = а % 2;

который можно записать как:

а %= 2;

В этом случае операция %= вычисляет остаток от деления а/2 и помещает результат обратно в переменную а.

Составные операции с присваиванием существуют для всех арифметических операций с двумя операндами. Таким образом, любой оператор, имеющий форму

переменная=переменная операция выражение;
можно записать в виде
переменная операция = выражение;

Составные операции с присваиванием предоставляют два преимущества. Во-первых, они позволяют уменьшить объем вводимого кода, поскольку являются "сокращенным" вариантом соответствующих длинных форм. Во-вторых, их реализация в системе времени выполнения Java эффективнее реализации эквивалентных длинных форм. Поэтому в профессионально написанных Java-программах составные операции с присваиванием будут встречаться очень часто.

Ниже приведен пример программы, который демонстрирует практическое применение нескольких составных операций с присваиванием.

// Демонстрация применения нескольких операций с присваиванием.
class OpEquals {
public static void main(String args[]) {
int a = 1;
int b = 2;
int с = 3;
a += 5;
b *= 4;
с += a * b;
с %= 6;
System.out.println("a = " + a);
System.out.println("b = " + b) ;
System.out.println("c = " + c) ;
}
}

Эта программа создает следующий вывод:

а = 6
b = 8
с = 3