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 的結果。