代入演算子

広告

変数に値を代入する時に使用する代入演算子(=)はこれまでのサンプルなどでも使用してきました。

演算子使用例意味
=a = ba に b を代入する

「=」の右辺に書かれた値や変数などを左辺に書かれた変数に代入します。

代入演算子は「=」の他に別の演算子と組み合わせた次のものが用意されています。

演算子使用例意味
+=a += ba = a + b と同じ
-=a -= ba = a - b と同じ
*=a *= ba = a * b と同じ
/=a /= ba = a / b と同じ
%=a %= ba = a % b と同じ
&=a &= ba = a & b と同じ
|=a |= ba = a | b と同じ
^=a ^= ba = a ^ b と同じ
<<=a <<= ba = a << b と同じ
>>=a >>= ba = a >> b と同じ
>>>=a >>>= ba = a >>> b と同じ

これらの演算子は変数に代入する値に何らかの演算を行って、その結果を再度同じ変数に代入する場合に便利です。次の例を見てください。

int num;

num = 10;
num = num + 8;

変数「num」に代入されていた10に8を加えて再度変数「num」に代入しています。このような場合は次のように記述することができます。

int num;

num = 10;
num += 8;

このように簡潔に記述することができます。

多重代入

値の代入」でも記述しましたが代入演算子は次のような記述が可能です。

変数1 = 変数2 = 変数3 = 値;

この時、使用されている「=」演算子は全て同じですから優先順位も同じです。そこで結合規則に従って処理が行われます。「=」演算子の結合規則は右となっているため、右から順に処理が行われます。

変数3 = 値;
変数2 = 変数3;
変数1 = 変数2;

結果的に全ての変数に一番右に記述された値が代入されることになります。

単なる「=」だけではなく「+=」や「*=」の場合も同じです。

変数1 += 変数2 *= 変数3 = 値;

代入演算子は全て同じ優先順位ですので、右から順に処理が行われます。

変数3 = 値;
変数2 = 変数2 * 変数3;
変数1 = 変数1 + 変数2;

ただあまり多重代入を使うと分かりにくくなりますので、全ての変数に同じ値を代入するような場合以外はあまり使わない方がいいかもしれません。

サンプル

では簡単なサンプルで試してみます。

JSample10_1.java

class JSample10_1{
  public static void main(String args[]){
    int num;

    num = 10;
    System.out.println(num);

    num += 5;
    System.out.println(num);

    num *= 2;
    System.out.println(num);

    num /= 3;
    System.out.println(num);
  }
}

コンパイル後に実行すると次のように表示されます。

p10-1

( Written by Tatsuo Ikura )