Developer

【はじめてのJava】代入演算子と算術演算子【演算子編】
2020.10.29
Lv1

【はじめてのJava】代入演算子と算術演算子【演算子編】

代入演算子と算術演算子

今回は「演算と演算子」「代入演算子」「算術演算子」について解説していきます。

目次


演算と演算子

演算

演算とは、計算処理のことです。演算には、私たちに馴染みのある、足し算(加算)・引き算(減算)・掛け算(乗算)・割り算(除算)の四つからなる四則演算や、数値の大小を比較する比較演算、論理演算などの種類があります。Javaでは、演算子という記号を用いて演算の処理を記述してくことになります。

演算子

プログラミング内で演算を行いたいときは、演算の種類に応じて決められている記号を用いて演算式を記述します。この時に使う記号のことを 演算子 と呼びます。

演算子には優先順位と結合規則があります。

優先順位や結合法則について詳しくは別の記事で扱いますので、ここでは演算結果が予想と異なる場合は優先順位の違いが原因かもしれないということだけ覚えておいてください。

オペランド

演算子の左右にある、演算の対象のことをオペランドと言います。特に演算子の左側にある演算対象を左オペランド、右側にある演算対象を右オペランドと言います。例えば下記の場合、xが左オペランド、yが右オペランドです。

x + y

代入演算子

 代入演算子 右辺の値を左辺に代入する演算子です。「=」が代入演算子の処理を行います。

int x = 10; //整数10をint型変数xに代入

代入演算子は、他の演算子の演算結果を代入する際にも使われます。

int x = 10 + 10; //10 + 10の演算結果をint型変数xに代入(xは20となる)

代入演算子「=」は、算数や数学で使われている「=」と使われ方が少々異なります。
算数や数学の「=」は主に「値が等しい」という意味になりますが、Javaの場合の「=」は「値を代入する」という意味になります。そのため、代入演算子の左オペランドが式やリテラルの場合、代入ができません。

また、「x = y」と「y = x」では意味が異なります。

対比表(代入演算子のみの場合)

算数や数学 Java
x = 1 xは1である。 xを1にする(代入する)。
1 = x 1はxである。
(両辺を入れ替えても良いので「xは1である」となる。)
左オペランドがリテラルなので代入不可
(1にxを代入するとなるが、そんなことはできない。)
x = y xはyである。
(通常はy = xも同じ)
xをyと同じ値にする。
(y = xとは異なる)
x = y = 2 xとyは2である。 xにyを代入するが、その前にyに2を代入する。
(最終的にxもyも2になる。=演算子が続けて使われている場合、右から順に実行される。)
x = y = z xとyとzは等しい。 xにyを代入するが、その前にyにzを代入する。
(最終的にxにもyにもzが代入される。=演算子が続けて使われている場合、右から順に実行される。)

対比表(算術演算子と組み合わせた場合)

算数や数学 Java
x = 1 + 2 xは1 + 2である。
(xは3である。)
xに1 + 2を代入する。
(代入後、xは3になる。)
x + 1 = 2 x + 1は2である。
(方程式)
左オペランドが式なので代入不可
(x + 1に2を代入するとなるが、そんなことはできない。)
1 + x = 2 1 + xは2である。
(方程式)
左オペランドが式なので代入不可
(1 + xに2を代入するとなるが、そんなことはできない。)
1 + 2 = x 1 + 2はxである。
(xは3である。)
左オペランドが式なので代入不可
(1 + 2にxを代入するとなるが、そんなことはできない。)
y = x + 1 yはx + 1と等しい。(方程式)
yはxよりも1大きい(関数)
yにx + 1を代入する。
(yにはxよりも1大きい値が代入される。)
x = x + 1 xはx + 1と等しい。
(方程式だが、解がない)
xにx + 1を代入する。
(xが1増加する。)
Javaではよく利用する記述方法。

なお、代入演算子にほかの演算子(+、-、|、<<など)を組み合わせた複合代入演算子(+=、-=、|=、<<=など)というものも存在します。こちらについては次回以降解説していきます。

算術演算子

算術演算子

 算術演算子 加減乗除の四則演算を行う演算子です。+が加算、-が減算、*が乗算、/と%が除算の処理を行う演算子です。

加算、減算、乗算

ここでは、四則演算における加算、減算、乗算について解説していきます。(除算については次回記事にて解説していきます。)

加算

加算とは足し算のことです。演算子には「+」を使用し、左辺の値に右辺の値を足した値を結果として返します。

int x = 10 + 1; //xに11が代入される。
System.out.println(10 + 2); //12が表示される。
減算

減算とは引き算のことです。演算子には「-」を使用し、左辺の値から右辺の値を引いた値を結果として返します。

int x = 10 - 1; //xに9が代入される。
System.out.println(10 - 2); //8が表示される。
乗算

乗算とは掛け算のことです。演算子には「*」を使用し、左辺の値に右辺の値をかけた値を結果として返します。
私たちが普段掛け算の際に使用する「×」の記号は使わないので注意しましょう。

int x = 10 * 1; //xに10が代入される。
System.out.println(10 * 2); //20が表示される。
サンプルソースコード

加算、減算、乗算の処理を含んだソースコードとその実行結果を記載します。
ソースコード

class Sample{
  public static void main(String[] args){ 
    int x = 3 + 4; 
    int y = 6 - 3; 
    int z = 5 * 9; 
    System.out.println("変数xの値は" + x + "です。"); 
    System.out.println("変数yの値は" + y + "です。"); 
    System.out.println("変数zの値は" + z + "です。"); 
  }
} 

実行結果

>javac Sample.java
>java Sample
変数xの値は7です。
変数yの値は3です。
変数zの値は45です。
このソースコードでは、int型変数x,y,zに対して、それぞれ加算、減算、乗算演算子を用いた計算結果を代入し、その結果を出力しています。


ポイント
Javaでは「=」も演算子の一つで、「値の代入」になる。
掛け算(乗算)の演算子は「*」を使用する。
演算子には優先順位がある。


次回の内容

次回は、算術演算子の続きの除算・剰余演算と、複合代入演算子について解説していきます。
次回記事はこちら


はじめてのJavaシリーズの記事一覧はこちら
シリーズ全記事一覧
環境構築編
プログラムの作り方編
データ型と変数編
演算子編


java 11 の練習問題一覧はこちら