次の方法で共有


And 演算子 (Visual Basic)

2 つの Boolean 式に対して論理結合を実行するか、2 つの数値式に対してビットごとの結合を実行します。

構文

result = expression1 And expression2  

部品

result
必須。 任意の Boolean または数値式。 ブール比較の場合、 result は 2 つの Boolean 値の論理結合です。 ビットごとの演算の場合、 result は 2 つの数値ビット パターンのビットごとの組み合わせを表す数値です。

expression1
必須。 任意の Boolean または数値式。

expression2
必須。 任意の Boolean または数値式。

注釈

ブール比較の場合、resultは、expression1expression2の両方がTrueに評価された場合にのみTrueされます。 次の表は、 result の決定方法を示しています。

expression1 expression2 resultの値は次の値です。
True True True
True False False
False True False
False False False

ブール比較では、 And 演算子は常に両方の式を評価します。これにはプロシージャ呼び出しを含めることができます。 AndAlso 演算子ショートサーキットを実行します。つまり、expression1Falseされている場合、expression2は評価されません。

数値に適用すると、 And 演算子は、2 つの数値式で同じ位置にあるビットのビットごとの比較を実行し、次の表に従って対応するビットを result に設定します。

expression1のビットが そして、 expression2 のビットは result内のビットは次の値です。
1 1 1
1 0 0
0 1 0
0 0 0

論理演算子とビット演算子は他の算術演算子や関係演算子よりも優先順位が低いため、正確な結果を得るには、ビットごとの演算をかっこで囲む必要があります。

データ型

オペランドが 1 つの Boolean 式と 1 つの数値式で構成されている場合、Visual Basic は Boolean 式を数値 ( True の場合は –1、 Falseの場合は 0) に変換し、ビット演算を実行します。

ブール比較の場合、結果のデータ型は Boolean。 ビットごとの比較では、結果のデータ型は、 expression1expression2のデータ型に適した数値型です。 演算子の結果のデータ型の「リレーショナル比較とビットごとの比較」の表を参照してください。

And演算子はオーバーロードできます。つまり、オペランドがそのクラスまたは構造体の型を持つ場合、クラスまたは構造体はその動作を再定義できます。 コードでこのようなクラスまたは構造体でこの演算子を使用する場合は、再定義された動作を理解していることを確認してください。 詳細については、「 演算子プロシージャ」を参照してください。

例 1

次の例では、 And 演算子を使用して、2 つの式に対して論理結合を実行します。 結果は、両方の式がTrueされているかどうかを表すBoolean値です。

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck As Boolean
firstCheck = a > b And b > c
secondCheck = b > a And b > c

前の例では、それぞれ TrueFalseの結果が生成されます。

例 2

次の例では、 And 演算子を使用して、2 つの数値式の個々のビットに対して論理結合を実行します。 オペランド内の対応するビットが両方とも 1 に設定されている場合、結果パターンのビットが設定されます。

Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a And b)
secondPattern = (a And c)
thirdPattern = (b And c)

前の例では、それぞれ 8、2、0 の結果が生成されます。

こちらも参照ください