複合代入演算子

5.3 複合代入演算子

 先ほどの 5.1.5 のサンプルプログラム「AssignmentOperator1.java」では、「変数に同じ変数を使った式を代入する」という文が出てきました。
 Java プログラムでは、これをもっと簡単に書く演算子が用意されています。それが「複合代入演算子」と呼ばれるものです。

表 5.3.1 : 複合代入演算子


 基本文法は下記のとおりです。

5.3.1 複合代入演算子を使ったプログラム

 「AssignmentOperator2.java」を、複合代入演算子を用いて書き換えます。
 少々わかりづらいかもしれませんが、サンプルプログラムを作成しながら、イメージを掴んでいきましょう。

① ソース・フォルダー :myproj_intro/src
② パッケージ :jp.co.f1.intro.ch5
③ 名前 :AssignmentOperator2
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる

➢ AssignmentOperator2.java

1package jp.co.f1.intro.ch5;
2     
3public class AssignmentOperator2 {
4     
5   public static void main(String[] args) {
6     
7      //加算用の値を管理する変数
8      int plus = 10;
9      plus += 5;
10      System.out.print("plus += 5 の結果、変数 plus の値は、");
11      System.out.println(plus);
12     
13      //減算用の値を管理する変数   
14      int minus = 10;          
15      minus -= 5;
16      System.out.print("minus -= 5 の結果、変数 minus の値は、");
17      System.out.println(minus);
18     
19      //乗算用の値を管理する変数   
20      int multiply = 10;
21      multiply *= 5;
22      System.out.print("multiply *= 5 の結果、変数 multiply の値は、");
23      System.out.println(multiply);
24     
25      //除算用の値を管理する変数
26      int divide = 10;
27      divide /= 5;
28      System.out.print("divide /= 5 の結果、変数 divide の値は、");
29      System.out.println(divide);  
30     
31   }
32}

実行結果

解説

 このサンプルプログラムは、「AssignmentOperator1.java」の 9、15、21、27 行目の式を複合代入演算子を使って書き換えています。下記の 2 つの文は、全く同じ意味、同じ結果となります。

➢ AssignmentOperator1.java
    9: plus = plus + 5;

➢ AssignmentOperator2.java
    9: plus += 5;

 そのほか、減算、乗算、除算も同様に、複合代入演算子に置き換えました。

5.3.2 剰余の複合代入演算子を使ったプログラム

 剰余の複合代入演算子を使った演算を行い、結果を出力します。

① ソース・フォルダー :myproj_intro/src
② パッケージ :jp.co.f1.intro.ch5
③ 名前 :AssignmentOperator3
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる

➢ AssignmentOperator3.java

1package jp.co.f1.intro.ch5;
2     
3public class AssignmentOperator3 {
4     
5   public static void main(String[] args) {
6     
7      // 剰余用の値を管理する変数
8      int surplus = 11;
9     
10      //「surplus」を「5」で割った余りを、「surplus」に代入
11      surplus %= 5;
12     
13      System.out.print("surplus の値は、");
14      System.out.println(surplus); 
15     
16   }
17}

実行結果

解説

 変数 surplus の値である 11 を 5 で割った余りの 1 を、変数 surplus に代入します。
    11: surplus %= 5;

表 5.3.2 : 複合演算子を使った剰余



NEXT>> 5.4 インクリメントとデクリメント

f