数値に対する代入演算子
a = b |
b の値をa に代入する |
a += b |
a = a + b と等価 |
a -= b |
a = a ― b と等価 |
a *= b |
a = a * b と等価 |
a /= b |
a = a / b と等価 |
a %= b |
a = a % b と等価 |
+=
など演算と代入を同時に行う演算子を複合代入演算子(compound assignment operator)と呼ぶ。複合代入演算子と対比する場合は、=
を単純代入演算子(simple assignment operator)と呼ぶ。
代入演算子の左辺に置けるのは変数のみで、リテラルや式は置けない。
1 2 3 |
2 += 1; // エラー a + 1 = 2; // エラー a + b = 2; // エラー |
宣言文で使えるのは=
のみで、+=
などの複合代入演算子は使えない。
1 |
int a += 1 // エラー、=しか使えない |
文字列に対する代入演算子
a = b |
a の内容をb に代入する |
a += b |
a の文字列とb の文字列を結合した結果をa に代入する |
左辺が変数でなければならない点、宣言文で+=
が使えない点は数値に対する場合と同じ。
なお、左辺はString型の変数でなければならないが、右辺はString型のほかchar型でもよい。
1 2 3 4 5 6 |
String s = "ABC"; s += "DEF"; System.out.println(s); // ABCDEF s += 'g'; System.out.println(s); // ABCDEFg |