論理演算子の優先順位

論理演算子の優先順位
論理演算子の優先順位は次のようになります。
ただし、異なる定義もあるので曖昧さを防ぐために括弧を付けることをおすすめします。
\[ \begin{array}{|c|c|c|} \hline \text{優先順位} & \text{演算子} & \text{結合則}\\ \hline 1 & \lnot & -\\ \hline 2 & \land & \text{左結合(右結合でも同じ)}\\ \hline 3 & \lor & \text{左結合(右結合でも同じ)}\\ \hline 4 & \uparrow & \text{左結合とすることが多い}\\ \hline 5 & \downarrow & \text{左結合とすることが多い}\\ \hline 6 & \rightarrow & \text{右結合}\\ \hline & \leftarrow & \text{左結合(右結合とすることもある)}\\ \hline 7 & \nrightarrow & \text{右結合}\\ \hline & \nleftarrow & \text{左結合(右結合とすることもある)}\\ \hline 8 & \leftrightarrow & \text{左結合(右結合でも同じ)}\\ \hline 9 & \nleftrightarrow & \text{左結合}\\ \hline 10 & \text{メタ論理的記号としての}\Rightarrow,\Leftarrow,\Leftrightarrow,\nRightarrow,\nLeftarrow,\nLeftrightarrow & \text{なし} \\\hline \end{array} \] 左結合は\(A\land B\land C\Leftrightarrow\left(A\land B\right)\land C\)で右結合は\(A\rightarrow B\rightarrow C\Leftrightarrow A\rightarrow\left(B\rightarrow C\right)\)です。
また、メタ論理記号\(\Rightarrow,\Leftarrow,\Leftrightarrow,\nRightarrow,\nLeftarrow,\nLeftrightarrow\)は\(A\Rightarrow B\Rightarrow C\)は\(\left(A\Rightarrow B\right)\land\left(B\Rightarrow C\right)\)と同値になるので左結合も右結合もありません。
\(\rightarrow,\leftarrow,\leftrightarrow,\nrightarrow,\nleftarrow,\nleftrightarrow\)と\(\Rightarrow,\Leftarrow,\Leftrightarrow,\nRightarrow,\nLeftarrow,\nLeftrightarrow\)を同じ意味で使うときは同じ優先順位になります。
優先順位は一般的に
\[ \lnot>\land,\lor>\uparrow,\downarrow>\rightarrow,\leftarrow,\leftrightarrow,\nrightarrow,\nleftarrow,\nleftrightarrow>\text{メタ論理記号としての}\Rightarrow,\Leftarrow,\Leftrightarrow,\nRightarrow,\nLeftarrow,\nLeftrightarrow \] となってますが、細かい優先順位は異なることもあります。
スポンサー募集!

ページ情報
タイトル
論理演算子の優先順位
URL
https://www.nomuramath.com/lp4ht5ml/
SNSボタン