Что такое оператор += в Java?

Это оператор присваивания с добавлением. Давайте разберем оператор += в Java и научимся использовать его в повседневном программировании.

x += y in Java is the same as x = x + y.

Это составной оператор присваивания, который чаще всего используется для увеличения значения переменной, так как x++ увеличивает значение только на единицу.

Увеличение значений с помощью оператора +=

Этот код увеличит значение a на 2. Давайте рассмотрим примеры:

int a = 1;
a+=2;
System.out.println(a);
Output

С другой стороны, если мы используем a++:

int a = 1;
a++;
System.out.println(a);
Output

Значение a увеличивается всего на 1.

Использование += в циклах Java

Оператор += также может использоваться с циклом for:

for(int i=0;i<10;i+=2)
{
    System.out.println(i);
}
Output

Значение i увеличивается на 2 на каждой итерации.

Работа с несколькими типами данных

Еще одна интересная вещь: при сложении int с double с использованием обычного оператора сложения в Java произойдет ошибка.

int a = 1;
a = a + 1.1; // Приводит к ошибке 
a += 1.1;
System.out.println(a);

Первая строка здесь вызывает ошибку, поскольку целое число нельзя сложить с числом с плавающей запятой.

Вывод:

error: incompatible types: possible lossy conversion from double to int
a = a + 1.1; // Вызывает ошибку 

Однако, при использовании оператора += в Java, сложение работает нормально, поскольку Java преобразует число с плавающей запятой в целое число и добавляет 1. Вот вывод при выполнении кода только с добавлением оператора +=.

Output

E1 op= E2 эквивалентно E1 = (T) ((E1) op (E2)), где T – это тип E1, за исключением того, что E1 оценивается только один раз. Это Java выполняет приведение типов для сложения двух чисел.

Конкатенация строк

Оператор += также работает для изменения строк.

String a = "Hello";
a+="World";
System.out.println(a);
Output

Строка “Hello” была изменена, и к ней была добавлена строка “World”.

Вывод

+= – это важный оператор присваивания. Его чаще всего используют в циклах. Тот же самый оператор присваивания работает и с другими операторами, такими как -=, *=, /=.

Source:
https://www.digitalocean.com/community/tutorials/addition-assignment-operator-in-java