2分ですぐにわかる!演算子の優先順位の考え方

java 演算子の優先順位
  • このエントリーをはてなブックマークに追加
  • Pocket

演算子には計算する優先順位がある。

このページでは演算子の優先順位についてお伝えした。基本的にJavaで紹介するが、他のプログラム言語でも同様だ。

参考にしていただければと思う。

演算子には優先順位がある

プログラミングで演算子を使うときは、その優先順位に気をつけなければいけない。

演算子の優先順位とは、どの順番で演算を行うかを決めるための優先順位のことだ。優先順位が同じであれば、基本的に演算は左から右へ行われる。

しかし、ひとつでも優先度が高いものがあれば、その優先度の高い演算が最初に行われる。演算子を組み合わせて使うとき、この点を注意する必要がある。これから演算子の詳細を学んでいくわけだが、その前に演算子の優先順について学んでおくほうがよい。

実際、優先順位がどうなっているのか見てみよう。

演算子の優先順位のリスト

このリストは、演算子の行の位置が上にあるほど優先順位は高く、下にあるほど優先度は低いことを表している。同じ行の中にあれば、同じ優先順位である。

代入演算子(=)以外のすべての二項演算子は、プログラムの左から右へ演算を行う。一方、代入演算子は、右から左へ値を代入する。

演算子

記号

優先度

後置

++ --

高い

前置、単行

++ -- + - ~ !

乗算

* / %

 

加算

+ -

 

シフト

<< >> >>>

 

関係

< > <= >= instanceof

 

比較

== !=

 

ビット単位積

&

 

ビット単位排他

^

 

ビット単位和

|

 

論理積

&&

 

論理和

||

三項

? :

低い

代入

= += -= *= /= %= &= ^= |= <<= >>= >>>=

 

演算子の優先順位を扱ったサンプルプログラム

このプログラムは、加算に対する乗算の位置を変えている。

位置が変わると、演算結果は変わるだろうか。乗算を加算より先に書いても、後に書いても、乗算が加算より優先されるため同じ結果になっている。この点を、もう一度前のセクションの優先順位のリストから確認してほしい。

実行結果

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1] 変数resultを宣言する。
  • [2] 変数resultに2 + 3 * 4を代入する。
  • [4] resultを表示する。
  • [2] 変数resultに3 * 4 + 2を代入する。
  • [4] resultを表示する。
  • [2] 変数resultに2 * 3 * 4 + 5 + 6を代入する。
  • [4] resultを表示する。
  • [2] 変数resultに5 + 6 + 2 * 3 * 4を代入する。
  • [4] resultを表示する。

括弧()の扱い方

これらの優先順位を変更するためには括弧()を使うことになる。こちらについては下記でお伝えしているので、こちらもご参考に。

まとめ

このページでは演算子の優先順位についてお伝えした。結構細かい設定があるのだが、基本的には乗算などだけ覚えておけばほとんどの場合困らない。

困ったときはこのページを参考にしていただければと思う。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リカレントテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメント

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リカレントテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する