演算子の優先順位
演算子には優先順位という概念があります。
優先順位という概念が存在することで、一つの式に演算子を複数使っても矛盾なく計算されます。
例えば、下記のような式を見てみます。
a = 23
足し算と掛け算を一つの式に含ませた場合、四則演算ではまず掛け算の部分から計算するようになっています。
Javaもそれと同じで、まずは「4 * 5」を計算し、その結果に3を加えます。
優先順位は下表のようになります。
※1:キャスト演算子
同じ優先順位の演算子が並んだときは、左から順に計算されます。
また、優先順位を明示的に上げてやる方法もあります。
a = 35
「3 + 4」の部分を()でくくってやることにより、掛け算より低いはずの足し算から計算するようになります。
このようなしくみが用意されているため、演算子の優先順位を無理に覚える必要はありません。
演算子には優先順位という概念が存在するということだけは念頭に入れておき、怪しいと思ったら()でくくってやり優先順位を調整してやれば良いのです。
優先順位という概念が存在することで、一つの式に演算子を複数使っても矛盾なく計算されます。
例えば、下記のような式を見てみます。
a = 3 + 4 * 5;【結果】
a = 23
足し算と掛け算を一つの式に含ませた場合、四則演算ではまず掛け算の部分から計算するようになっています。
Javaもそれと同じで、まずは「4 * 5」を計算し、その結果に3を加えます。
優先順位は下表のようになります。
| 優先順位 | 演算子 |
|---|---|
| 1 | a++, a-- |
| 2 | +, -, ++a, --a, !, ~ |
| 3 | new, ()※1 |
| 4 | *, /, % |
| 5 | +, - |
| 6 | <<, >>, >>> |
| 7 | >, <, >=, <=, instanceof |
| 8 | ==, != |
| 9 | & |
| 10 | ^ |
| 11 | | |
| 12 | && |
| 13 | || |
| 14 | ?: |
| 15 | =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>= |
同じ優先順位の演算子が並んだときは、左から順に計算されます。
また、優先順位を明示的に上げてやる方法もあります。
a = (3 + 4) * 5;【結果】
a = 35
「3 + 4」の部分を()でくくってやることにより、掛け算より低いはずの足し算から計算するようになります。
このようなしくみが用意されているため、演算子の優先順位を無理に覚える必要はありません。
演算子には優先順位という概念が存在するということだけは念頭に入れておき、怪しいと思ったら()でくくってやり優先順位を調整してやれば良いのです。
