こんにちは、現役SEの「とも」です。
今回は、演算子についてのお話です。演算子とは、変数やリテラルに対して「足したり引いたり」といった何らかの演算を行う際に使用する表現です。
演算子には以下のものがあります。
種類 | 説明 |
---|---|
算術演算子 | 四則演算や余剰計算、インクリメント/デクリメントを行うための演算子。 |
比較演算子 | 2つの値を比較し、条件に合致すればtrueを、合致しなければfalseを返す演算子。 |
論理演算子 | 2つの値の論理和、論理積といった論理演算を行い、結果をtrueまたはfalseで返す演算子。 |
ビット演算子 | ビットに対して論理和、論理積といった論理演算を行う演算子。 |
シフト演算子 | ビットシフトを行う演算子。 |
代入演算子 | 変数に代入する演算子。算術演算や論理演算、ビット演算しながら代入する演算子もある。 |
これらの演算子は、以下のように1つの式の中で組み合わせて使用することができます。
boolean result = 2 * 3 % 5 < 1 + 2;
演算子には計算する順番を定義した優先順位がありますが、第三者が見たときに分かりやすくするために、一般的にはカッコを付けて明示的に優先順位を指定します。
boolean result = ((2 * 3 ) % 5) < (1 + 2);
複数種類が混ざった場合の基本的な演算の優先順位は以下の通りとなります。
それぞれの種類でも演算の優先順位がありますが、それは個別の記事で紹介します。
【演算の優先順位】
優先度 | 種類 |
---|---|
高い | 算術演算子 |
↑ | シフト演算子 |
↑ | 比較演算子 |
↑ | ビット演算子 |
↑ | 論理演算子 |
低い | 代入演算子 |
複雑な計算を行う場合は、変数を分けて計算することも多いです。
第三者から見た可読性を高めるためには、こちらの方が良いでしょう。
意味のある単位ごとに変数を定義すると分かりやすくなります。
int a = (2 * 3 ) % 5; //○○の計算結果
int b = 1 + 2 ; //△△の計算結果
boolean result = a < b; //○○よりも△△が大きい場合にtrue