Javaにおける”+=”は何ですか?
これは、足し算代入演算子です。Javaでの+=演算子を理解し、日常のプログラミングに使えるようにしましょう。
Javaのx += yは、x = x + yと同じです。
これは複合代入演算子です。x++は値を1だけ増加させるため、変数の値を増加させる際に最もよく使用されます。
“+= 演算子を使用して値を増やす”
このコードは、aの値を2増やします。例を見てみましょう。
int a = 1;
a+=2;
System.out.println(a);
![output](https://cdn.silicloud.com/blog-img/blog/img/6564a030daa94e2bdf7c2613/6-0.png)
その一方で、a++を使用する場合は
int a = 1;
a++;
System.out.println(a);
![Output 2 1](https://cdn.silicloud.com/blog-img/blog/img/6564a030daa94e2bdf7c2613/9-0.png)
aの値がたった1増えました。
Javaのループで+=を使用する
+=演算子はforループでも使用することができます。
for(int i=0;i<10;i+=2)
{
System.out.println(i);
}
![For Loop Output 1](https://cdn.silicloud.com/blog-img/blog/img/6564a030daa94e2bdf7c2613/14-0.png)
各イテレーションでiの値が2増加します。
複数のデータ型で作業する
もうひとつ興味深いことは、通常の加算式でintをdoubleに追加すると、Javaではエラーが発生することです。
int a = 1;
a = a + 1.1; // Gives error
a += 1.1;
System.out.println(a);
ここでの最初の行は、int を double に追加することができないためエラーが発生します。
出力:
error: incompatible types: possible lossy conversion from double to int
a = a + 1.1; // Gives error
ただし、Javaで+=演算子を使用する場合、追加は正常に動作します。なぜなら、Javaはdoubleを整数値に変換して1を加えるからです。以下は、+=演算子の追加のみでコードを実行したときの出力です。
![Output](https://cdn.silicloud.com/blog-img/blog/img/6564a030daa94e2bdf7c2613/23-0.png)
E1 op= E2は、E1 = (T) ((E1) op (E2))に等しいです。ここで、TはE1の型ですが、E1は1回しか評価されません。これはJavaが2つの数値を加算するために型キャストを行っていることです。
文字列の連結
“+=”演算子は文字列の変更にも使用できます。
String a = "Hello";
a+="World";
System.out.println(a);
![String mutation Output](https://cdn.silicloud.com/blog-img/blog/img/6564a030daa94e2bdf7c2613/28-0.png)
文字列「Hello」が変異し、「World」という文字列がそれに連結されました。
結論
+=は重要な代入演算子です。ループとの組み合わせで最もよく使用されます。-=や*=、/=などの他の演算子でも同じ代入が機能します。