Visual Basic .NET/分支語句
分支語句,或條件語句,是程式碼,允許您測試語句是真還是假,然後根據這些比較執行一些程式碼。
- If/Endif
- If/Else/Endif
- If/ElseIf/Else/Endif
- Select Case/End Select
以下是簡單 if 語句的示例
Dim value as integer
value = 4
if value < 10 Then
console.write("value is less than 10)
Endif
請參考以下示例
Dim iJunk1 as integer
Dim iJunk2 as integer
iJunk1 = 4
iJunk2 = 7
IF 語句的實際格式是
IF...THEN...ELSE...ENDIF
IF 語句總是測試左側的條件或語句,以確定其是否為真結果
ie: is iJunk1 = 4 ........ TRUE ie: is iJunk1 = 5 ........ FALSE ie: is iJunk1 > 7 ........ TRUE ie: is iJunk1 < iJunk2 ... TRUE
如果條件或語句為真,IF 語句將繼續使用 THEN 運算子處理語句的頂部或下一部分。
如果 THEN 操作是一個單語句,它可以與測試條件寫在同一行
IF iJunk1 = 4 THEN iJunk2 = 10
如果 THEN 操作需要兩個或更多個語句,您會發現,當每個語句獨佔一行時,整個 IF 語句更容易閱讀。
IF iJunk1 = 4 THEN
iJunk1 = iJunk1 + 3 'iJunk1 would then = 7
iJunk2 = iJunk2 + 1 'iJunk2 would then = 8
ENDIF
如上所示,IF 語句不需要 ELSE 子句,也可以不使用 ELSE 子句。
當您的 IF 語句需要處理真條件和假條件時,需要使用 ELSE 子句。
IF iJunk = 4 THEN
(execute the True code)
ELSE
(execute the False code)
ENDIF
IF NOT iJunk1 = 4 THEN ' Be carefull of the use of the NOT clause
(execute the True code) 'iJunk1 is NOT = 4
ELSE
(execute the False code) 'iJunk1 is = 4
ENDIF
有時,當您將條件或語句放在括號內時,更容易閱讀。
IF NOT (iJunk1 = 4) THEN ............
If/ElseIf 語句用於根據多個測試條件或語句有條件地執行程式碼。如果 If 語句中提供的條件計算為真,則執行塊中的程式碼。否則,執行將繼續到 ElseIf 條件或語句,或繼續到 Else 或 EndIf 語句。
ElseIf 和 Else 子句不是 If 語句的必需部分。
以下是 If/ElseIf/Else 分支語句的示例
'The following variable declarations are for the following example only. They are not needed in real life.
Dim x As Integer
Dim y As Integer
If x = y Then
'Whatever will happen if x = y
ElseIf x < y Then
'Whatever will happen if x < y
Else
'Whatever will happen if x isn't = to y and x isn't < to y
End If
字串或數字都可以用於 Select Case 語句。
Select Case 語句通常用於避免長串的 If/ElseIf/.../ElseIf/Else 語句。
以下是一個 Select 的示例
Dim nCPU as Integer
Select Case nCPU
Case 0
'No CPU!
Case 1
'Single CPU
Case 2
'Dual CPU machine
Case 4
'Quad CPU machine
Case 3, 5 To 8
'3, 5, 6, 7, 8 CPU's
Case Else
'Something more than 8
End Select
Visual Basic .NET 中的布林運算子現在支援短路布林求值,大多數其他語言預設情況下總是應用短路布林求值(通常,這可以透過編譯器選項關閉),請考慮以下布林語句
functionA() and functionB()
對於此語句,當使用短路布林求值時,只有當第一個函式返回真時,才會呼叫第二個函式,這是因為,如果 functionA 返回假,那麼 functionB 返回真還是假就與語句的結果無關。
但是,當不使用短路布林求值時,無論語句的第一部分返回真還是假,都會呼叫這兩個函式。
需要注意的是,在使用短路布林求值時,引數的順序可能很重要。
由於以前的 Visual Basic 版本不支援短路布林求值,因此微軟決定保留向後相容性,並添加了兩個新的布林邏輯識別符號,它們支援短路布林求值,所以除了標準的布林運算子之外
Not And Or Xor
還有兩個新的運算子使用短路布林求值,它們是
AndAlso OrElse