O que é o Operador de Atribuição de Adição += em Java?

1. **Operador de Atribuição de Adição**. Vamos entender o operador += em Java e aprender a usá-lo em nossa programação diária.

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

Este é um operador de atribuição composta. Mais comumente usado para incrementar o valor de uma variável, já que x++ apenas incrementa o valor em um.

Incrementando Valores com o Operador +=

Este código aumentará o valor de “a” em 2. Vamos ver os exemplos:

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

Por outro lado, se usarmos a++:

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

O valor de “a” é aumentado apenas em 1.

Usando += em Laços (Loops) Java

O operador += também pode ser usado com o loop for:

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

O valor de “i” é incrementado em 2 a cada iteração.

Trabalhando com Múltiplos Tipos de Dados

Outra coisa interessante a se observar é que adicionar int a double usando a expressão de adição regular daria um erro em Java.

int a = 1;
a = a + 1.1; // Dá erro 
a += 1.1;
System.out.println(a);

A primeira linha aqui dá um erro pois int não pode ser adicionado a um double.

Saída:

error: incompatible types: possible lossy conversion from double to int
a = a + 1.1; // Dá erro 

No entanto, ao usar o operador += em Java, a adição funciona bem pois Java converte o double para um valor inteiro e adiciona 1. Aqui está a saída quando o código é executado apenas com a adição do operador +=.

Output

E1 op= E2 é equivalente a E1 = (T) ((E1) op (E2)), onde T é o tipo de E1, exceto que E1 é avaliado apenas uma vez. Isso é o Java realizando uma conversão de tipo para adicionar os dois números.

Concatenação de Strings

O operador += também funciona para mutação de strings.

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

A string “Olá” foi mutada e a string “Mundo” foi concatenada a ela.

Conclusão

O += é um importante operador de atribuição. É mais comumente usado com loops. A mesma atribuição também funciona com outros operadores como -=, *=, /=.

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