布林運算式是評估為布林資料類型值的運算式:True或 False。
Boolean 表達式可以採用數種形式。 最簡單的是變數Boolean的值與Boolean常值的直接比較,如下列範例所示。
If newCustomer = True Then
' Insert code to execute if newCustomer = True.
Else
' Insert code to execute if newCustomer = False.
End If
"=" 運算符的兩種含義
請注意,指派語句 newCustomer = True 看起來與上述範例中的表達式相同,但它會執行不同的函式,而且會以不同的方式使用。 在上述範例中,表達式 newCustomer = True 代表布爾值,並將 = 符號解譯為比較運算符。 在獨立語句中,符號 = 會解譯為指派運算符,並將右邊的值指派給左邊的變數。 下列範例說明這點。
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。
Short-Circuiting 運算子
邏輯運算子 AndAlso 和 OrElse 顯示稱為 「短線路」的行為。 短路運算子會先評估左運算元。 如果左作數決定整個表達式的值,則程式執行會繼續,而不評估正確的表達式。 下列範例說明這點。
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,則程式執行會繼續進行到下一行程式碼而不評估右運算式,因為左運算式已經驗證了整個表達式。
與非Short-Circuiting 運算子的比較
相較之下,當使用邏輯運算符 And 和 Or 時,邏輯運算符的兩端都會進行評估。 下列範例說明這點。
If 45 < 12 And testFunction(3) = 81 Then
' Add code to continue execution.
End If
即使左表示式評估為 testFunction(),上述範例仍會呼叫 False 。
括號表達式
您可以使用括弧來控制布爾表達式評估的順序。 括號括住的表達式會先被評估。 針對多個巢狀層級,會將優先考量給予最深入的巢狀表達式。 在括弧內,評估會根據運算符優先順序的規則進行。 如需詳細資訊,請參閱 Visual Basic中的運算元優先順序。