Java 演算子の優先順位
1. 演算子の優先順位とは
一つの計算式に複数の演算子(オペレータ)が含まれている場合、Javaは「演算の順序(Order of Operations)」のルールに従って、どの部分から先に計算するかを決定します。
例えば、数学のルールと同様に、Javaでも加算よりも乗算が先に実行されます。
1.1 優先順位による計算結果の違い
int result1 = 2 + 3 * 4; // 2 + 12 = 14
int result2 = (2 + 3) * 4; // 5 * 4 = 20
System.out.println(result1); // 出力: 14
System.out.println(result2); // 出力: 202. なぜこの結果になるのか
2 + 3 * 4 という式では、乗算(*)の優先順位が高いため、まず 3 * 4 が計算され、その結果に 2 が足されるので答えは 14 になります。
もし加算を先に行いたい場合は、括弧(Parentheses)を使用する必要があります。(2 + 3) * 4 と記述することで、括弧内が優先され、答えは 20 になります。
プロのヒント: 計算が期待通りの順序で行われることを確実にするために、常に 括弧 ( ) を使用することを推奨します。これはバグを防ぐだけでなく、コードの可読性(読みやすさ)を向上させることにも繋がります。
3. 演算の実行順序一覧
以下は、Javaで使用される一般的な演算子を、優先順位の高い順(先に実行される順)に並べたリストです。
| 優先順位 | 演算子 | 説明 |
|---|---|---|
| 高 | () | 括弧(Parentheses) |
| ↑ | *, /, % | 乗算、除算、剰余(モジュロ) |
+, - | 加算、減算 | |
>, <, >=, <= | 比較(大小) | |
==, != | 等価(等しい・等しくない) | |
| ↓ | && | 論理積(AND) |
|| | 論理和 (Logical OR) | |
| 低 | = | 代入(Assignment) |
4. 実行順序のもう一つの例
減算と加算のように優先順位が同じ演算子が並ぶ場合、括弧がない限り「左から右へ」順番に計算されます。
4.1 結合規則と括弧の例
int result1 = 10 - 2 + 5; // (10 - 2) + 5 = 13
int result2 = 10 - (2 + 5); // 10 - 7 = 3
System.out.println(result1); // 出力: 13
System.out.println(result2); // 出力: 3