VB.NET 論理演算子の使い方 優先度 And Or Not

論理演算子は、複数の条件を指定する時や、
真偽値の逆転処理を行う事ができます。

論理演算子の種類

論理演算子には、And Or Not の3つがあります。

論理演算子とビット演算子の両方で使えるAndOrは、
紛らわしいので、
論理演算子専用としてAndは、AndAlso
Orは、OrElseと言う演算子が存在します。

条件に合う場合は真(True)
条件に合わない場合は偽(False)を返します。

それぞれ次のような使い方ができます。

And(AndAlso)の使い方

例)数学のテストが80点以上で、
さらに国語のテストが80点以上なら

( suugaku >= 80 And kokugo >= 80 )
スポンサーリンク

Or(OrElse)の使い方

例)数学のテストが80点以上、
もしくは国語のテストが80点以上なら

( suugaku >= 80 Or kokugo >= 80 )

Notの使い方

例)数学のテストが80点以上ではない場合は

( Not (suugaku >= 80) )

論理演算子の優先度

複数の論理演算子が使われている場合は、
どれが先に実行されるかが重要になります。

そのため、どの演算子が優先的に
実行されるかを表す優先度があります。

優先度は、高い方からNot And Orとなります。

プログラム例

例)数学のテストが80点以上で、
  国語のテストが80点以上の場合、
または
  理科のテストが80点以上で、
  社会のテストが80点以上の場合は

( suugaku >= 80 And kokugo >= 80 Or rika >= 80 And shakai >= 80)

例)数学のテストが80点以上の場合、
または
  国語のテストが80点以上で、
  理科のテストが80点以上の場合、
または
  社会のテストが80点以上の場合は

( suugaku >= 80 Or kokugo >= 80 And rika >= 80 Or shakai >= 80)

例)数学のテストが80点以上ではなく
  国語のテストが80点以上の場合、
または
  理科のテストが80点以上の場合、

( Not suugaku >= 80 And kokugo >= 80 Or rika >= 80 )

優先度はありますが、
常にカッコを付ければ優先度に関係なく記述できるので、
私はそうしています。