へっぽこITエンジニア@名古屋のブログ

Follow me on GitHub

AndとOrの演算子の優先度

プログラムのIF文などでAndとOrの演算子を混在させた場合、Andが優先されます。 今回は論理式の優先度について説明します。

AndとOrの混在について

論理式でAndとOrを混在させると処理の順番によって結果が異なってきます。

A ∧ B ∨ Cとしたときに(A ∧ B) ∨ CA ∧ (B ∨ C)とで結果が異なってきます。

例えばA・・・false B・・・false C・・・trueとすると

(A ∧ B) ∨ C・・・true
A ∧ (B ∨ C)・・・false

となります。

このように、処理の順番によって変わってきます。

プログラムで書いたとの優先度

上記のように処理の順番によって結果が変わるのですが、 私が好きなJavaでカッコをつけなくてもコンパイルエラーにならず普通に実行できます。

実はAndが優先されA ∧ B ∨ C(A ∧ B) ∨ Cとして扱われます。

Java以外でも同じ優先度でAndが基本的に優先されます。

ですが、ぱっと見どっちが優先されるかわからないので可読性のためにも カッコを付けたほうがよいと個人的には思います。

ちなみにの違いは とがっている方が論理式で使われ、丸い方が集合で使われます。

まとめ

AndとOrの演算子を混在させた場合、処理の順番によって結果が異なります。 混在させた場合はAndが優先されるのですが、 可読性のためにカッコを付け他方がよいかと思います。

作成日:2022-05-15  更新日:2022-05-15