Or 運算子 (Visual Basic)

對兩個 Boolean 運算式執行邏輯分離,或對兩個數值運算式執行位元分離。

語法

result = expression1 Or expression2  

組件

result
必要。 任何 Boolean 或數值運算式。 對於 Boolean 比較,result 是兩個 Boolean 值的內含邏輯分離。 對於位元運算,result 是數值,代表兩個數值位元模式的內含位元分離。

expression1
必要。 任何 Boolean 或數值運算式。

expression2
必要。 任何 Boolean 或數值運算式。

備註

對於 Boolean 比較,只有在 expression1expression2 皆評估為 False 時,result 才會是 False。 下表說明如何判斷 result

如果 expression1 expression2 result 值是
True True True
True False True
False True True
False False False

注意

Boolean 比較中,Or 運算子一律會評估這兩個運算式,其中包括進行程序呼叫。 OrElse 運算子會執行簡短運算,這表示如果 expression1True,則不會評估 expression2

對於位元運算,Or 運算子會在兩個數值運算式之間執行位元比較相同位置的位元,並根據下表設定 result 中的對應位元。

expression1 中的位元為 expression2 中的位元為 result 中的位元為
1 1 1
1 0 1
0 1 1
0 0 0

注意

由於邏輯和位元運算子的優先順序低於其他算術和關係運算子,因此任何位元運算都應該以括弧括住,以確保正確執行。

資料類型

如果運算元包含一個 Boolean 運算式和一個數值運算式,則 Visual Basic 會將 Boolean 運算式轉換成數值 (True 為 –1 ,而 False 為 0),並執行位元運算。

針對 Boolean 比較,結果的資料類型為 Boolean。 針對位元比較,結果資料類型是適用於 expression1expression2 資料類型的數值類型。 請參閱運算子結果的資料類型中的「關聯式與位元比較」資料表。

多載化

Or 運算子可以多載,這表示當運算元具有該類別或結構的類型時,類別或結構可以重新定義其行為。 如果您的程式碼在此類類別或結構上使用此運算子,請務必了解其重新定義的行為。 如需詳細資訊,請參閱 Operator Procedures

範例 1

下列範例會使用 Or 運算子,以便在兩個運算式上執行內含邏輯分離。 結果為 Boolean 值,表示兩個運算式的其中一個是否為 True

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

上述範例分別會產生 TrueTrueFalse 的結果。

範例 2

下列範例使用 Or 運算子,以在兩個數值運算式的個別位元上執行內含邏輯分離。 如果運算元中的任一個對應位元設定為 1,則會設定結果模式中的位元。

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

上述範例分別會產生 10、14 和 14 的結果。

另請參閱