跳轉到內容

Visual Basic .NET/分支語句

來自華夏公益教科書,自由的教科書

分支語句,或條件語句,是程式碼,允許您測試語句是真還是假,然後根據這些比較執行一些程式碼。

分支語句

[編輯 | 編輯原始碼]
  1. If/Endif
  2. If/Else/Endif
  3. If/ElseIf/Else/Endif
  4. Select Case/End Select

分支語句解釋

[編輯 | 編輯原始碼]

If...EndIf語句

[編輯 | 編輯原始碼]

以下是簡單 if 語句的示例

    Dim value as integer
    value = 4
    if value < 10 Then
    console.write("value is less than 10)
    Endif

If...Else...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...Else...EndIf 語句

[編輯 | 編輯原始碼]

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 語句。

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
華夏公益教科書