Javaに関する様々な情報をご紹介します。

7演算子の優先順位

Javaに関する様々な情報をご紹介します。

演算子の優先順位

このページでは、Javaで用意されている演算子の優先順位について説明します。

演算子の優先順位

Javaでは複数の演算子を組み合わせ一つの式でいくつもの処理を行うことができます。その際、どの順番で演算が行われるかを把握することは重要なことです。演算処理の順番の相違により、演算結果が想定していたものと異なる場合があるからです。以下にJavaで用意されている演算子の優先順位を記載します。演算処理は代入演算子を除く演算子は左から右へ、代入演算子は右から左へ処理が行われていきます(x++、--xなどの単項演算子は除く)。

優先順位 演算子
高い [ ] . (パラメータのリスト) x++ x--
++x --x +x ~ !
new (型)x
* / %
+ -
<< >> >>>
< > <= >= instanceof
== !=
&
^
|
&&
||
? :
低い = += -= *= /= %= &= ^= |= <<= >>= >>>=

【例1】演算子の優先順位を考慮した例を記載します。

public class ExOperator13 {
    public static void main(String[] args) {
        int x1 = 10, x2 = 10;
        int y1 = 20, y2 = 20;
        int z1 = 30, z2 = 30;
        int xyz1, xyz2;

        xyz1 = x1 & y1 * z1;   //(1)
        xyz2 = y2 * z2;   //(2)
        xyz2 = x2 & xyz2;   //(3)

        System.out.println(xyz1 + ":" + xyz2);   //(4)
    }
}

解説1

  1. (1)変数x1、y1、z1を演算子の優先順位に基づき演算処理を行います。
  2. (2)変数x2、y2、z2を個別に演算します。まず、変数y2と変数z2の*演算を行い、演算結果を変数xyz2に代入します。
  3. (3)次に変数x2と変数xyz2の&演算を行い、演算結果を変数xyz2に代入します。
  4. (4)複数の演算処理を一文で行った演算結果xyz1と一処理づつ行った演算結果xyz2の表示を行います。

実行結果1

D:\JAVA>javac ExOperator13.java

D:\JAVA>java ExOperator13
8:8

D:\JAVA>

7演算子の優先順位