Java 速習チュートリアル

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); // 出力: 20

2. なぜこの結果になるのか

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