共用方式為


布林運算式

更新:2007 年 11 月

「布林運算式」就是會評估為布林資料型別值的運算式。Boolean 運算式可以有數種形式。最簡單的形式是直接比較 Boolean 變數值與 Boolean 常值 (Literal),如下列範例所示。

If newCustomer = True Then
    ' Insert code to execute if newCustomer = True.
Else
    ' Insert code to execute if newCustomer = False.
End If

= 運算子的兩種意義

請注意,指派陳述式 (Assignment Statement) newCustomer = True 看起來與上述範例中的運算式相同,但是它會執行不同的函式且使用方式不同。在上述範例中,運算式 newCustomer = True 代表布林值,而且 = 符號會解譯為比較運算子。在獨立 (Stand-Alone) 陳述式中,= 符號會解譯為指派運算子,並且將右邊的值指派給左邊變數。下列範例將說明這點。

If newCustomer = True Then
    newCustomer = False
End If

如需詳細資訊,請參閱數值比較設定陳述式

比較運算子

比較運算子 (如 =、<、>、<>、<= 和 >=) 會產生布林運算式,其做法便是比較左側的運算式與運算子右側的運算式,並將結果評估為 True 或 False。下列範例將說明這點。

42 < 81

因為 42 小於 81,所以上述範例中的布林運算式會評估為 True。如需此種運算式的詳細資訊,請參閱數值比較

與邏輯運算子結合的比較運算子

比較運算式可以使用邏輯運算子加以結合,以產生更複雜的布林運算式。下列範例會將比較運算子與邏輯運算子搭配使用。

x > y And x < 1000

在上述範例中,整個運算式的值取決於位於 And 運算子任一邊的運算式值。如果這兩個運算式都為 True,則整體運算式會評估為 True。如果任一個運算式為 False,則整個運算式會評估為 False。

最短路徑運算子

邏輯運算子 AndAlso 和 OrElse 展現的行為稱為「最少運算」(Short-Circuiting)。最少運算的運算子會先評估左邊的運算元。如果左邊運算元會決定整個運算式的值,則程式執行會繼續進行,但不評估右邊運算式。下列範例將說明這點。

If 45 < 12 AndAlso testFunction(3) = 81 Then
    ' Add code to continue execution.
End If

在上述範例中,運算子會評估左邊運算式 45 < 12。因為左邊運算式會評估為 False,所以整個邏輯運算式必須評估為 False。因此,程式執行會略過執行 If 區塊內的程式碼,而不需要評估右邊的運算式 testFunction(3)。因為左邊運算式竄改整個運算式,所以這個範例不會呼叫 testFunction()。

同樣地,如果使用 OrElse 的邏輯運算式中的左邊運算式評估為 True,則執行會繼續進行程式碼的下一行,而不會評估右邊運算式,因為左邊運算式已驗證整個運算式。

與非最少運算的運算子比較

相對地,在使用邏輯運算子 And 和 Or 時,會評估邏輯運算子的兩側。下列範例將說明這點。

If 45 < 12 And testFunction(3) = 81 Then
    ' Add code to continue execution.
End If

即使左邊運算式評估為 False,上述範例也會呼叫 testFunction()。

括號內的運算式

您可以使用括號,控制布林 (Boolean) 運算式的評估順序。會先評估括號所圍住的運算式。就多層巢狀 (Nest) 層次而言,會將優先順序授與給巢狀最深層的運算式。在括號內,會按照運算子優先順序來進行評估。如需詳細資訊,請參閱 Visual Basic 中的運算子優先順序

請參閱

概念

Visual Basic 中的邏輯運算子和位元運算子

數值比較

設定陳述式

有效的運算子組合

參考

比較運算子 (Visual Basic)

Visual Basic 中的運算子優先順序

Boolean 資料型別 (Visual Basic)