And 運算子 (Visual Basic)
在兩個 Boolean
運算式上執行邏輯結合,或在兩個數值運算式上執行位元結合。
語法
result = expression1 And expression2
組件
result
必要。 任何 Boolean
或數值運算式。 對於布林值比較,result
是兩個 Boolean
值的邏輯結合。 對於位元運算,result
是數值,代表兩個數值位元模式的位元結合。
expression1
必要。 任何 Boolean
或數值運算式。
expression2
必要。 任何 Boolean
或數值運算式。
備註
對於布林值比較,如果及只有在 expression1
和 expression2
皆評估為 True
時,result
才會是 True
。 下表說明如何判斷 result
。
如果 expression1 為 |
且 expression2 為 |
result 的值即為 |
---|---|---|
True |
True |
True |
True |
False |
False |
False |
True |
False |
False |
False |
False |
注意
在布林值比較中,And
運算子一律會評估這兩個運算式,其中包括進行程序呼叫。 AndAlso 運算子會執行簡短運算,這表示如果 expression1
是 False
,則不會評估 expression2
。
套用至數值時,And
運算子會在兩個數值運算式之間執行位元比較相同位置的位元,並根據下表設定 result
中的對應位元。
如果 expression1 中的位元是 |
且 expression2 中的位元為 |
result 中的位元是 |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
注意
由於邏輯和位元運算子的優先順序低於其他算術和關係運算子,因此任何位元運算都應該以括弧括住,以準確的結果。
資料類型
如果運算元包含一個 Boolean
運算式和一個數值運算式,則 Visual Basic 會將 Boolean
運算式轉換成數值 (True
為 –1 ,而 False
為 0),並執行位元運算。
對於布林值比較,結果的資料類型是 Boolean
。 對於位元比較,結果資料類型是適用於 expression1
和 expression2
資料類型的數值型別。 請參閱運算子結果的資料類型中的「關聯式與位元比較」資料表。
注意
And
運算子可以多載,這表示當運算元具有該類別或結構的類型時,類別或結構可以重新定義其行為。 如果您的程式碼在這類類別或結構上使用此運算子,請務必了解其重新定義的行為。 如需詳細資訊,請參閱 Operator Procedures。
範例 1
下列範例使用 And
運算子,對兩個運算式執行邏輯結合。 結果為一個表示兩個運算式是否都為 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
上面的範例會分別產生 True
和 False
的結果。
範例 2
下列範例使用 And
運算子,對兩個數值運算式的個別位元執行邏輯結合。 如果兩個運算元中的對應位元都設為 1,那麼結果模式的位元也會被設為 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 的結果。