分享方式:


OrElse 運算子 (Visual Basic)

在兩個運算式上執行最少運算包含邏輯析取。

語法

result = expression1 OrElse expression2  

組件

result
必要。 任何 Boolean 運算式。

expression1
必要。 任何 Boolean 運算式。

expression2
必要。 任何 Boolean 運算式。

備註

若編譯過的程式碼可以根據另一個運算式的結果來跳過評估一個運算式時,則邏輯運算就會被稱為「最少運算」。 如果評估的第一個運算式結果確定了運算的最終結果,則不需要評估第二個運算式,因為它無法改變最終結果。 如果跳過的運算式很複雜,或者它涉及程序呼叫,則最少運算可以改善效能。

如果兩個運算式都評估為 True,則 resultTrue。 下表說明如何判斷 result

如果 expression1 expression2 result 的值即為
True (未評估) True
False True True
False False False

資料類型

OrElse 運算子只會針對布林值資料類型進行定義。 Visual Basic 會視需要將每個運算元轉換成 Boolean,再評估運算式。 如果您將結果指派給數值類型,則 Visual Basic 會將它從 Boolean 轉換成該類型,使 False 變成 0 以及 True 變成 -1。 如需詳細資訊,請參閱布林值類型轉換

多載化

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

範例 1

下列範例會使用 OrElse 運算子,以便在兩個運算式上執行邏輯析取。 結果為 Boolean 值,表示兩個運算式的其中一個是否為 true。 如果第一個運算式是 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 OrElse b > c
secondCheck = b > a OrElse b > c
thirdCheck = b > a OrElse c > b

上述範例分別會產生 TrueTrueFalse 結果。 在 firstCheck 的計算中,不會評估第二個運算式,因為第一個運算式已經是 True。 不過,第二個運算式會在 secondCheck 的計算中進行評估。

範例 2

下列範例顯示包含兩個程序呼叫的 If...Then 陳述式。 如果第一個呼叫傳回 True,則不會呼叫第二個程序。 如果第二個程序會執行此程式碼區段執行時應該一律執行的重要工作,這可能會產生非預期的結果。

If testFunction(5) = True OrElse otherFunction(4) = True Then
    ' If testFunction(5) is True, otherFunction(4) is not called.
    ' Insert code to be executed.
End If

另請參閱