共用方式為


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

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

' Multiple-line syntax:
If condition [ Then ]
    [ statements ]
[ ElseIf elseifcondition [ Then ]
    [ elseifstatements ] ]
[ Else
    [ elsestatements ] ]
End If

' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]

組件

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

    如果運算式是評估為 Nothing可為 NullBoolean 變數,這種情況,視為運算式不 True,因此, Else 執行區塊。

  • 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 時,會執行緊接在相關 ElseIf 之後的陳述式。如果沒有 elseifcondition 評估為 True,或是如果沒有 ElseIf 陳述式,就會執行接在 Else 之後的陳述式。執行接在 Then、ElseIf 或 Else 之後的陳述式後,程式碼會繼續執行接在 End If 之後的陳述式。

ElseIf 和 Else 子句都是選擇項。在 If...Then...Else 陳述式中可以有任意數目的 ElseIf 子句,但是任何 ElseIf 子句都不可以出現在 Else 子句之後。If...Then...Else 陳述式可以相互套疊成巢狀。

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

提示提示

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

單行語法

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

接下來會檢查 Then 關鍵字後面跟隨的內容,判斷陳述式是否為單行的 If。如果在 Then 之後同一行中出現的不是註解,則會將陳述式視為單行的 If 陳述式。如果沒有出現 Then,則該陳述式必須是多行 If...Then...Else 的開頭。

由於 If...Then 的結果,您可以使用單行語法中執行多個陳述式。所有陳述式都必須在同一行,並以冒號隔開。

範例

下列範例說明 If...Then...Else 陳述式多行語法的使用方式。

        Dim count As Integer = 0
        Dim message As String

        If count = 0 Then
            message = "There are no items."
        ElseIf count = 1 Then
            message = "There is 1 item."
        Else
            message = "There are " & count & " items."
        End If

下列範例包含巢狀的 If...Then...Else 陳述式。

Private Function CheckIfTime() As Boolean
    ' Determine the current day of week and hour of day.
    Dim dayW As DayOfWeek = DateTime.Now.DayOfWeek
    Dim hour As Integer = DateTime.Now.Hour

    ' Return True if Wednesday from 2 to 4 P.M.,
    ' or if Thursday from noon to 1 P.M.
    If dayW = DayOfWeek.Wednesday Then
        If hour = 14 Or hour = 15 Then
            Return True
        Else
            Return False
        End If
    ElseIf dayW = DayOfWeek.Thursday Then
        If hour = 12 Then
            Return True
        Else
            Return False
        End If
    Else
        Return False
    End If
End Function

下列範例說明單行語法的使用方式。

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

請參閱

參考

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

Choose

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

Switch

If 運算子 (Visual Basic)

概念

巢狀控制結構 (Visual Basic)

決策結構 (Visual Basic)

Visual Basic 中的邏輯運算子和位元運算子