共用方式為


If...Then...Else 陳述式 (Visual Basic)

更新:2007 年 11 月

依據運算式的值,有條件的執行一組陳述式。

 If condition [ Then ]     [ statements ] [ ElseIf elseifcondition [ Then ]     [ elseifstatements ] ] [ Else     [ elsestatements ] ] End If -or- If condition Then [ statements ] [ Else [ elsestatements ] ]

參數

  • condition
    必要項。運算式。必須評估為 True 或 False,或是會隱含轉換為 Boolean 的資料型別。

  • Then
    在單行形式中為必要項,在多行形式中為選擇項。

  • statements
    選擇項。接在 If...Then 之後,如果 condition 評估為 True,就會執行的一或多個陳述式。

  • elseifcondition
    如果有 ElseIf,則為必要項。運算式。必須評估為 True 或 False,或是會隱含轉換為 Boolean 的資料型別。

  • elseifstatements
    選擇項。接在 ElseIf...Then 之後,如果 elseifcondition 評估為 True,就會執行的一或多個陳述式。

  • elsestatements
    選擇項。如果先前無 condition 或 elseifcondition 運算式評估為 True,就會執行的一或多個陳述式。

  • End If
    結束 If...Then...Else 區塊。

備註

您也可以用單行形式進行簡短的測試。然而,多行形式比單行形式提供更多的結構性和彈性,而且通常較易閱讀、維護和偵錯。

遇到多行 If...Then...Else 時,會測試 condition。如果 condition 為 True,就會執行接在 Then 之後的陳述式。如果 condition 為 False,則會依序評估每一個 ElseIf 陳述式。發現 elseifcondition 為 True 時,會執行緊接在相關 Then 之後的陳述式。如果沒有 elseifcondition 評估為 True,或是如果沒有 ElseIf 陳述式,就會執行接在 Else 之後的陳述式。執行接在 Then、ElseIf 或 Else 之後的陳述式後,程式碼會繼續執行接在 End If 之後的陳述式。

秘訣

Select...Case 陳述式 (Visual Basic) 在評估具有多個可能值的單一運算式時,也許更能發揮作用。

如果決定在單行形式中使用 If...Then,則仍可執行多個陳述式。所有陳述式都必須在同一行,並以冒號隔開。以下範例就是示範這項作業。

If A > 10 Then A = A + 1 : B = B + A : C = C + B

在多行形式中,If 陳述式必須是第一行唯一的陳述式。ElseIf、Else 和 End If 陳述式的前面只能出現行標籤。多行的 If...Then...Else 區塊必須以 End If 陳述式結束。

若要判斷 If 陳述式是否會引入多行形式,請檢查 Then 關鍵字之後的項目。如果在 Then 之後同一個陳述式中出現的不是註解,則會將這個陳述式視為單行的 If 陳述式。如果沒有 Then 出現,則該陳述式一定是多行 If...Then...Else 的開頭。

ElseIf 和 Else 子句都是選擇項。在多行 If...Then...Else 中,可以有任意數目的 ElseIf 子句,但不可以出現在 Else 子句之後。多行形式的程式可在彼此內部互相巢狀化。

範例

在下列範例中,程式碼會同時顯示多行和單行形式的 If...Then...Else 陳述式。

Dim number, digits As Integer
Dim myString As String
number = 53
If number < 10 Then
    digits = 1
ElseIf number < 100 Then
    digits = 2
Else
    digits = 3
End If
If digits = 1 Then myString = "One" Else myString = "More than one"

在上述範例中,ElseIf 條件會評估為 True,並指派 2 的值給 digits。然後,最後一個陳述式會將 "More than one" 的值指派給 myString。

請參閱

參考

#If...Then...#Else 指示詞

Choose 函式

Select...Case 陳述式 (Visual Basic)

Switch 函式