カテゴリ: JavaSilver試験対策 更新日: 2026/03/25

Javaの演算子の優先順位をわかりやすく解説!初心者向けガイド

026
Javaの演算子の優先順位

先生と生徒の会話形式で理解しよう

生徒

「Javaで計算式を書いたら、結果が思ったのと違いました。どうやったら正確な計算ができるんでしょうか?」

先生

「それは演算子の優先順位を知らないからかもしれませんね。Javaでは、計算の順序が決まっています。優先順位をしっかり理解すれば、正しい結果を得られますよ!」

生徒

「なるほど!優先順位について詳しく教えてください!」

先生

「では、演算子の優先順位について基本から応用まで学んでいきましょう。」

1. 演算子の優先順位とは?

1. 演算子の優先順位とは?
1. 演算子の優先順位とは?

Javaでは、複数の演算子が1つの式に含まれている場合、計算の順序を定めたルール「演算子の優先順位」が適用されます。これにより、計算がどの順序で行われるかが決まります。

以下は、Javaの演算子の優先順位を示した表です:

優先順位 演算子
高い [], ., (パラメータのリスト), x++, x--
++x, --x, +x, -x, ~, !
*, /, %
+, -
低い =, +=, -=, *=, /=

2. 設問の解説

2. 設問の解説
2. 設問の解説

次のコードを例に、演算子の優先順位を理解しましょう:


public class Main {
    public static void main(String[] args) {
        int result = 30 - 12 / (2 * 5) + 1;
        System.out.println(result);
    }
}

このコードでは、以下の順序で計算が行われます:

  1. (2 * 5)を計算して10になる。
  2. 12 / 10を計算して1になる(整数除算で小数点以下が切り捨てられる)。
  3. 30 - 1を計算して29になる。
  4. 29 + 1を計算して30になる。

結果として、30が出力されます。

3. 実践例

3. 実践例
3. 実践例

以下は、演算子の優先順位を確認するためのコード例です:


public class OperatorPrecedence {
    public static void main(String[] args) {
        int a = 50, b = 10, c = 5;
        int result = a - b / (2 * c) + b % c;
        System.out.println("計算結果: " + result);
    }
}

このコードでも、掛け算と割り算が加減算よりも優先されるため、計算順序が結果に大きく影響します。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. 注意点とコツ

4. 注意点とコツ
4. 注意点とコツ
  • 整数除算の注意:Javaでは、整数同士の割り算は小数点以下を切り捨てる。
  • カッコを活用:計算順序を明示するために、カッコを使うことで可読性を向上させる。
  • シンプルに:複雑な式は分割して書くことで、意図しない計算ミスを防ぐ。

以下のようにカッコを使うと、計算順序が分かりやすくなります:


public class ParenthesesExample {
    public static void main(String[] args) {
        int x = 20;
        int y = 10;
        int result = (x + y) * (x - y) / (x / y);
        System.out.println("計算結果: " + result);
    }
}

5. 比較演算子と論理演算子の優先順位

5. 比較演算子と論理演算子の優先順位
5. 比較演算子と論理演算子の優先順位

演算子の優先順位は、算術演算子だけでなく比較演算子や論理演算子にも適用されます。 特に条件式を書くときには、どの演算子が先に評価されるのか理解しておくことが重要です。

次のコードを見てみましょう:


public class LogicalExample {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        int c = 3;

        boolean result = a > b && b > c;
        System.out.println(result);
    }
}

この場合、まず比較演算子>が評価され、その結果に対して 論理演算子&&が適用されます。 つまり、比較演算子のほうが論理演算子より優先順位が高いということです。

6. 代入演算子の優先順位

6. 代入演算子の優先順位
6. 代入演算子の優先順位

代入演算子(=+=など)は、Javaの演算子の中でも比較的優先順位が低い位置にあります。 そのため、ほとんどの場合は他の計算が終わった後に代入が行われます。

次の例を確認してみましょう:


public class AssignmentExample {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        int result;

        result = a + b * 2;
        System.out.println(result);
    }
}

このコードでは、まずb * 2が計算され、その後にa + ...が実行されます。 最後に計算結果がresultに代入されます。

7. 演算子の優先順位を理解するメリット

7. 演算子の優先順位を理解するメリット
7. 演算子の優先順位を理解するメリット

演算子の優先順位を理解しておくと、計算ミスを防ぐだけでなく、 プログラムの読みやすさや保守性も向上します。

  • 複雑な計算式の動作を正しく理解できる
  • バグの原因を特定しやすくなる
  • 他の開発者にも読みやすいコードを書くことができる

実務では、優先順位に頼りすぎず、必要に応じてカッコを使って 計算順序を明確にすることが推奨されています。 これにより、意図しない計算ミスを防ぐことができます。

まとめ

まとめ
まとめ

Javaの演算子の優先順位について学ぶことは、正確なプログラムを書く上で非常に重要です。演算子の優先順位を理解することで、計算結果を正確に予測し、意図しないエラーを防ぐことができます。この記事では以下のポイントを学びました。

  • 優先順位: 演算子には計算順序が決まっており、基本的には数学と同じルールが適用されます。
  • 整数除算: Javaでは整数同士の割り算の結果は小数点以下が切り捨てられる点に注意が必要です。
  • カッコの活用: 計算順序を明確にするためにはカッコを使うことが効果的です。
  • シンプルな書き方: 複雑な式は分割して書き、可読性を高めましょう。

以下に、今回の学びを活用した実践的なコード例を示します。


public class CalculationExample {
    public static void main(String[] args) {
        int x = 15, y = 5, z = 3;
        int result = (x + y) / z - (x % y) * z;
        System.out.println("計算結果: " + result);
    }
}

この例では、カッコを使うことで計算順序を明確にし、計算結果を予測しやすくしています。こうした工夫は特に複雑な数式を扱う際に有効です。

先生と生徒の振り返り会話

生徒

「演算子の優先順位を意識するだけで、計算結果が全然違うものになることが分かりました!」

先生

「その通りです。プログラムでは一見シンプルな式でも、優先順位を誤ると期待通りの結果にならないことが多いんです。」

生徒

「カッコを使うと自分も分かりやすくなるし、他の人にも伝わりやすいですね。」

先生

「そうですね。カッコを活用して、計算順序を明示する習慣をつけると、プログラムの品質が向上しますよ。」

生徒

「これからは複雑な計算式を書くときに、優先順位を意識してみます!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Javaの演算子の優先順位とは何ですか?初心者でもわかるように説明できますか?

Javaの演算子の優先順位とは、複数の演算子を含む式を計算する際に、どの演算子から計算されるかを決めるルールです。優先順位を理解することで、計算結果の予測が正しくできるようになります。

Javaで計算結果が思った通りにならないのは、演算子の優先順位が原因ですか?

はい、非常に多い原因です。Javaでは演算子ごとに明確な計算順序があるため、優先順位を知らずに式を書くと予期しない結果が出ることがあります。

掛け算や割り算が足し算より優先されるのは本当ですか?

本当です。Javaでは「*」「/」「%」が先に計算され、「+」「-」はその後に処理されます。これは数学と同じルールなので覚えやすいです。
JavaSilver試験対策の一覧へ
新着記事
Flutter
Flutterでのリポジトリパターンの実装例
Flutterでリポジトリパターンを実装する方法を完全解説!初心者向けアーキテクチャ設計入門
Java
Java の Objects クラスを使って null チェックを簡単にする方法
JavaのObjectsクラスの使い方を完全ガイド!nullチェックを簡単・安全に行う方法
Java
Java の UUID クラスを使って一意の識別子を作成する方法
JavaのUUIDクラスの使い方を完全ガイド!初心者でもわかる一意な識別子の作成方法
Java
Java の古い日付クラス(Date, Calendar)と新しい日付 API の違い
JavaのDateとCalendarと新しい日付APIの違いとは?初心者向け完全ガイド
人気記事
Java
Java の Random クラスを使ってランダムな数値を生成する方法
JavaのRandomクラスの使い方を完全ガイド!初心者でもわかる乱数生成
Java
Java の getter メソッドと setter メソッドの使い方
Javaのgetterメソッドとsetterメソッドの使い方を完全ガイド!初心者でもわかるアクセス方法
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
AWS
【AWS】VPCとは?初心者向けに仕組み・用途・できることをわかりやすく解説
【AWS】VPCとは?初心者向けに仕組み・用途・できることをわかりやすく解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク