マンガで分かる Java入門講座

第4章 数値変数と演算子
4-6. 演算子1 算術演算子

「演算子」とは何かを「算術演算子」を例にして紹介していきます。

● 演算子

 「演算子」は、プログラム中で、様々な計算を行うための記号です。数学でもよく見る「+(プラス)」や「-(マイナス)」も、演算子として出てきます。他にも、Javaのプログラミングでは、様々な演算子が出てきます。


● 算術演算子

 「算術演算子」は、数値の計算を行うための演算子です。算術演算子には、数学の四則演算(足す、引く、掛ける、割る)などを行うための記号が用意されています。

表)算術演算子
演算子使い方計算内容
+a + baとbを足す
-a - baからbを引く
*a * baとbを掛ける
/a / baからbを割る
%a % baからbを割った余り

● インクリメントとデクリメント

 算術演算子には、少し特殊なものが用意されています。変数の中の値を1増やす「++」と、1減らす「--」です。

 この算術演算子は、2つの値の結果を計算するのではなく、変数の値そのものに作用します。

ソースコード)「++」と「--」
int a = 0;  // 変数aの中身は0
a ++;       // 変数a(中身は0)は1増えて1になる
a ++;       // 変数a(中身は1)は1増えて2になる
a ++;       // 変数a(中身は2)は1増えて3になる
a --;       // 変数a(中身は3)は1減って2になる

System.out.println(a);  // 「2」と出力

 こういった変数の中身を1増やす処理を「インクリメント」と呼びます。また1減らす処理を「デクリメント」と呼びます。

 こういった計算方法は、今後出てくる「ループ処理」という、何度も繰り返す処理で多用するようになります。1ずつ値を変えて、処理を行う目的で、これらの演算子は利用されます。


● 「++」「--」の前置と後置

 「++」と「--」の演算子は、変数の前に書くか後で書くかによって処理のされ方が変わります。

 変数の前に書いた場合は、先に1が加算/減算された後に、変数の値が利用されます。

 変数の後に書いた場合は、変数の値が利用された後に、1が加算/減算されます。

 以下、その計算の様子が分かる実例です。

説明)変数の値が計算される順番
int a = 2;
int b = 3;
int c = a++ * ++b;
    ↓
   ┏━┓
   ┃ ┠─変数aは2。計算に使った後、変数aを1増やす。
   ┃ ┃ なので、計算の時点では2のまま。
   ┃ ┃
   ┃2 ┃* ++b;
   ┗━┛  ↓
       ┏━┓
       ┃ ┠─まず変数bを1増やす。
       ┃ ┃ 変数bは4。この値を使う
    2   * ┃4 ┃;
       ┗━┛
    ↓
   ┏━┓
   ┃ ┠─最終的な答え。
      ┃8 ┃;
   ┗━┛

ソースコード)「++」「--」の前置と後置
int a = 2;
int b = 3;
int c = a++ * ++b;

System.out.println(a);  // 「3」と出力
System.out.println(b);  // 「4」と出力
System.out.println(c);  // 「8」と出力


● 演算子の優先順位

 演算子には、どちらが先に計算されるかという「優先順位」があります。

 優先順位に従って計算が行われる様子を示します。

説明)演算子の優先順位
int a = 4 + 3 * 2 - 1;
    ↓
    4 + 6 - 1;
    ↓
    10 - 1;
    ↓
    9;

ソースコード)演算子の優先順位
int a = 4 + 3 * 2 - 1;
System.out.println(a);  // 「9」と出力

 まだ紹介していない演算子を含めて、優先順位の表を示しておきます。

表)演算子の優先順位
優先順位演算子意味
高い
  ↑






























  ↓
低い
(引数)
[配列添字]
.
x++ x--
メソッドの引数
配列の添字
オブジェクトの階層の区切り
算術演算子
++x --x
+x -x
~
!
算術演算子
単項演算子(正負の符号)
ビット演算子
論理演算子
new 型 x
(型)
オブジェクト生成
キャスト
* / %算術演算子
+ -算術演算子
<< >> >>>シフト演算子
< > <= >=
instanceof
比較演算子
== !=比較演算子
&ビット演算子かつ論理演算子
^ビット演算子かつ論理演算子
|ビット演算子かつ論理演算子
&&論理演算子
||論理演算子
? :条件演算子
= += -=
*= /= %=
&= |= ^=
<<= >>= >>>=
代入演算子

● 「( )」の利用

 優先順位とは違う順番で計算を行いたい場合は、数学の計算と同じように「( )」を利用します。

 以下、「( )」を利用した計算の例を示します。

説明)「( )」の利用
int a = (4 + 3) * (2 - 1);
        ↓
      7    *    1;
        ↓
        7;


ソースコード)「( )」の利用
int a = (4 + 3) * (2 - 1);
System.out.println(a);  // 「7」と出力

この講座のマンガ部分は「箱人形マンガ(Box Comic) 」で作成しています。
作成:2013/05/20  更新:2015/08/08  [Permalink]