【Java初心者】計算式〜様々な演算子〜
プログラミングの計算式とは、四則演算だけでなく変数へ値を代入することも含まれ、変数や値を用いた計算処理をコンピュータに行わせるための式です。
この記事では、計算式を構成する要素について説明していきます。
1.計算式の構成要素
以下の式には、値、変数、演算子がありますが、
変数(a,b,c)値(1,2)と演算子(=,+)の2つに区分することができます。
int a = 1;
int b = 2;
int c = a + b;
プログラミング言語では、値(1,2)や変数(a,b,c)のことオペランド、(+,=)のことを演算子と呼んで扱っています。プログラミングにおいて、計算式はこのオペランドと演算子の2つによって構成されております。
2.式の評価
演算子は、前後のオペランドの情報を使って計算を行い、その結果に変身します。この計算処理を式の評価と言います。
以下の図では、+演算子が前後の7と4を利用して式の評価を行うことにより、
11に変身しています。これは一般的な計算式と同じなので深く考える必要はありません。

3.演算子の優先順位
Javano計算式で使用する演算子には優先順位があり、1つの式の中に複数の演算子が存在する場合は、優先順位の高いものから順に評価されていき、最終的な結果を出します。
一般的な算数の考え方と同様になりますが、1つの式の中に+と*が存在する場合、*の計算が先に行われることになります。もちろん、()がある場合は()の中から優先的に計算されることになります。

また、同じ式の中に同じ優先順位の演算子が存在する場合には演算子ごとに定められた計算の方向から順に計算されます。これが一般的な計算式とは異なることで、一般的な計算式では基本的には左側から計算していくことしかありません。
しかし、プログラミングにおいて[=]演算子は’等しい’ではなく’代入’という意味を持っているため、右から順に計算式を見ていくことがあります。

4.演算子の種類
算術演算子
自身の前後にある数字、あるいは数値型の変数を利用して四則演算を行う演算子を算術演算子と呼びます。
代表的な算術演算子は一般的に使われる加減乗除と割り算の余りのみを算出する剰余の5つが存在します。
注意点として、整数同士の割り算を行った場合は結果が整数で出てしまうため、厳密に小数点以下まで計算したい場合は、除算演算子の前後どちらかの数字を小数点込みの数字にしましょう。
7 / 2 = 3 ⇦ 整数同士の除算
7.0 / 2 = 3.5 ⇦どちらか一方が小数点以下まで記載
| 機能名 | 演算子 | 使用例 | 評価順 | 優先度 |
| 足し算 | + | 7+4⇨11 | 左から右 | 普通 |
| 引き算 | – | 7-4⇨3 | 左から右 | 普通 |
| 掛け算 | * | 7*4⇨28 | 左から右 | 高い |
| 割り算 | / | 7/4⇨1 | 左から右 | 高い |
| 割り算の余り | % | 7/4⇨3 | 左から右 | 高い |
文字列結合演算子
前後の文字列、あるいは文字列型の変数を利用して結合を行う演算子を文字列結合演算子です。文字列同士での引き算や掛け算などは到底不可能であるため、加算のみが存在します。基本的な使用方法は算術演算子の足し算と同様になります。
使用例
String name = "きりがや"+"かずと";
System.out.println(name);
実行結果
きりがやかずと
代入演算子
プログラミング初心者の方からみると最も不可解な演算子です。
以下のようにプログラミングにおける演算子は右の値を左に代入することを意味します。
代入演算子には四則演算と合体したものも存在しており、計算式内での優先順位は最も低くなっているため、式の中で最後に計算されます。

| 機能名 | 演算子 | 使用例 |
| 右の値を左へ代入 | = | a = 7 |
| 左+右の結果を左へ代入 | += | a += 7 |
| 左-右の結果を左へ代入 | -= | a -= 7 |
| 左*右の結果を左へ代入 | *= | a *= 7 |
| 左/右の結果を左に代入 | /= | a /= 7 |
| 左/右の余りを左に代入 | %= | a %= 7 |
四則演算と複合の代入演算子は、以下のように普通の計算式と同じ意味をしているため、コードを少しでも短く綺麗にできます。

インクリメント/デクリメント
インクリメントは値に1を加算したい時に、デクリメントは値から1を減算したい時に使用します。他の演算子とは少し違い、とても限定的な使用方法になりますが意外と便利でよく使います。また、これらは数字に対しては直接使うことができず、変数に対してのみ使用することができます。

主な使用シーンとしては、繰り返しのfor文やwhile文の中でループ回数のカウントなどに利用することが多いです。
また、インクリメントやデクリメント演算子は[a++]と後ろにつけるだけでなく、
[++a]のように前につけることも可能です。他の演算子と組み合わせると意図しない結果になる可能性があるため、他の演算子とは一緒に使わないように気をつけましょう。
for(int i =0; i<7; i++) { ⇦ for文が1度実行されるたびに1加算される。
・・・・・・・・・・・
}
以上、参考になった方も参考にならなかった方もご覧いただきありがとうございました!
-
前の記事
【Java初心者】変数の仕組みと定数 2021.02.02
-
次の記事
【Java初心者】型変換とキャスト 2021.02.07