布林運算式是評估為布林資料類型值的運算式: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中的運算元優先順序。