その構文形式は次のとおりです。
変数名 = 式の内容
Java言語では「変数名」と「式」の内容の型が一致している必要があり、型が一致しない場合は対応する型に自動変換する必要があります。
代入演算子の優先順位は算術演算子よりも低く、結合方向は右から左です。数学における等号ではなく、右側の値を送信するというアクションを表します。左側の変数に代入します (式などではなく、左側のみが変数として許可されます)。代入演算子と等価演算子 “==” を混同しないでください。
代入演算子は、複数の代入演算の突然変異効果を表現するために他の演算子と組み合わせて使用されます。たとえば、基本的な代入演算子をベースに、後で学習する算術演算子やビット演算子を組み合わせて複合代入演算子を作成できます。代入演算子と算術演算子からなる複合代入演算の意味と使用例を表1に示します。
オペレーター | 意味 | 例 | 結果 |
---|---|---|---|
+= | 演算子の左側の値を右側の値に加算し、その結果を左側の変数自体に代入します。 | int a=5; a+=2; | a=7 |
-= | 演算子の左側の値を右側の値から減算し、その結果を左側の変数自体に代入します。 | int a=5; a-=2; | a=3 |
*= | 演算子の左側の値と右側の値を乗算し、その結果を左側の変数自体に代入します。 | int a=5; a*=2; | a=10 |
/= | 演算子の左側の値を右側の値で除算し、その結果を左側の変数自体に代入します。 | int a=5; a/=2; | a=2 |
%= | 演算子の左側の値を右側の値で割って剰余を取り、その結果を左側の変数自体に代入します。 | int a=5; a%=2; | a=1 |
大規模なプログラムでは、これらの代入演算子を柔軟に使用すると、プログラムの可読性が向上し、プログラムの保護が容易になります。代入演算子の使用例をいくつか示します。
int x, y, z; // 3つの整数型変数を定義する
x = y = z = 5; // 変数の初期値を5に設定する
x += 10; // x=x+10と同じで、結果的にxは15となる
y -= 3; // y=y-3と同じで、結果的にyは2となる
z *= 5; // z=z*5と同じで、結果的にzは25となる
x /= 4; // x=x/4と同じで、結果的にxは3となる
z %= x; // z=z%xと同じで、結果的にzは1となる
例1
たとえば、製品の単価が 10.25 元から 1.25 元に減り、自分が購入する数量が元の 2 個から 10 個に増加した場合、複合代入演算子を使用して購入した商品の合計価格を計算できます。 。
実装コードは次のとおりです。
public static void main(String[] args) {
double price = 10.25; // 商品の単価を定義し、10.25で設定する
double total = 0; // 初期の総額を0とする
int count = 2; // 購入数量を定義し、2に設定する
price -= 1.25; // 割引を適用して現在の単価を計算する
count *= 5; // 今は10個を購入する必要があります、つまり元の数量の5倍です
total = price * count; // 総額 = 現在の単価×数量
System.out.printf("商品の現在の単価は:%4.2f \n", price); // 現在の単価を出力する
System.out.printf("購入した商品の数量は:%d \n", count); // 購入数量を出力する
System.out.printf("総額は:%4.2f \n", total); // 総額を出力する
}
注: Java では一度に複数の変数に値を代入するこの方法がサポートされていますが、このような書き方はプログラムの可読性を低下させるため、このように書くことはお勧めできません。
このプログラムでは、商品の単価を表す価格変数の値は 10.25 ですが、現在は 1.25 下がっており、元の値から 1.25 を引くと現在の単価が得られます。元の購入数量は 2 ですが、現在は 10 個購入する必要があります。「count*=5」を使用して数量を 5 倍し、その値をカウント自体に割り当てることができます。
代入演算子は、式の値を変数に代入するためにも使用されます。次のコードは正しいです。
double d1 = 12.34
double d2 = d1 + 5;
System.out.println(d2); // d2: 17.34
代入演算子を他の演算子と組み合わせて、より強力な代入演算子に拡張することもできます。