Or 運算子 (Visual Basic)
對兩個 Boolean 運算式執行邏輯分離 (Logical Disjunction),或對兩個數值運算式 (Numeric Expression) 執行位元 (Bitwise) 分離。
result = expression1 Or expression2
組件
result
必要項。 任何 Boolean 或數值運算式。 若為 Boolean 比較,則 result 是兩個 Boolean 值的內含邏輯分離。 若為位元運算,則 result 是數值,代表兩個數值位元模式的內含位元分離。expression1
必要項。 任何 Boolean 或數值運算式。expression2
必要項。 任何 Boolean 或數值運算式。
備註
若為 Boolean 比較,則只有在 expression1 和 expression2 都評估為 False 時,result 才會是 False。 下表說明如何決定 result。
如果 expression1 為 |
且 expression2 是 |
result 的值為 |
---|---|---|
True |
True |
True |
True |
False |
True |
False |
True |
True |
False |
False |
False |
注意事項 |
---|
在 Boolean 比較中,Or 運算子一律會評估這兩個運算式,而這兩個運算式可包含進行程序呼叫。OrElse 運算子 (Visual Basic) 執行「最少運算」(Short Circuit),這表示如果 expression1 為 True,則不會評估 expression2。 |
就位元運算而論,Or 運算子會對兩個數值運算式中同位置的位元執行位元比較,並依據下表來設定 result 中的對應位元。
如果 expression1 中的位元是 |
並且 expression2 中的位元是 |
result 中的位元是 |
---|---|---|
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
注意事項 |
---|
由於邏輯和位元運算子的優先順序低於其他算術和關係運算子,所以任何位元運算都必須加上括號,以確保執行結果的正確性。 |
資料型別
如果運算元是以一個 Boolean 運算式和一個數字運算式組成,則 Visual Basic 會將 Boolean 運算式轉換成數值 (-1 代表 True 而 0 代表 False),並執行位元運算。
若為 Boolean 比較,則結果的資料型別為 Boolean。 進行位元 (Bitwise) 比較時,結果資料型別會是數字型别,適用於 expression1 和 expression2 的資料型別。 請參閱運算子結果的資料型別 (Visual Basic)中的「關係和位元比較」表。
多載化
Or 運算子可以「多載」,也就是,當運算元具備類別或結構的類型時,該類別或結構就可以重新定義其行為。 如果您的程式碼在這種類別或結構上使用此運算子,就一定要先瞭解其重新定義的行為。 如需詳細資訊,請參閱 運算子程序 (Visual Basic)。
範例
下列範例會使用 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
上述範例分別產生 True、True 和 False 的結果。
下列範例會使用 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、12 和 14 的結果。