共用方式為


布林運算式 (Visual Basic)

「布林運算式」(Boolean Expression) 此運算式評估得出的值為布林資料型別:True 或 False。 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

如需詳細資訊,請參閱數值比較 (Visual Basic)陳述式 (Visual Basic)

比較運算子

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

42 < 81

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

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

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

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 中的運算子優先順序

Boolean 資料型別 (Visual Basic)

概念

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

數值比較 (Visual Basic)

有效的運算子組合 (Visual Basic)

其他資源

Visual Basic 中的陳述式