共用方式為


HOW TO:依據一個或多個條件執行陳述式 (Visual Basic)

您可以使用 If...Then...Else 陳述式 (Visual Basic),根據條件的Boolean 資料型別 (Visual Basic) 值,執行特定陳述式 (Statement) 或陳述式區塊。 條件通常來自於兩個值的比較,它也可以是任何評估為 Boolean 值 (True 或 False) 的運算式。 其中包含其他資料型別的值,例如已轉換為 Boolean 的數字型別 (Numeric Type)。

若要在條件為 True 時執行一或多個陳述式

  • 如果只有一行陳述式要執行,請使用 If...Then...Else 建構的單行語法。 不需要使用 Else 或 End If 陳述式。 下列範例將說明這點。

    Sub fixDate()
        Dim myDate As Date = #2/13/1973#
        If myDate < Now Then myDate = Now
    End Sub
    

    -或-

  • 在條件為 True 時若要執行多於一行的程式碼,請使用多行語法,其中包含 End If 陳述式。 如果條件為 False 時並沒有要執行程式碼,請省略 Else 陳述式。 下列範例將說明這點。

    Dim alertLabel As New System.Windows.Forms.Label
    Sub alertUser(ByVal value As Long)
        If value = 0 Then
            alertLabel.ForeColor = System.Drawing.Color.Red
            alertLabel.Font = New Font(alertLabel.Font, 
                FontStyle.Bold Or FontStyle.Italic)
        End If
    End Sub
    

若要在條件為 True 時執行某些陳述式,並在條件為 False 時執行其他陳述式

  • 請使用 If...Then...Else 建構搭配 Else 陳述式 (Visual Basic) 陳述式,定義兩個陳述式區塊。 Visual Basic 在條件為 True 時會執行一段區塊,而當條件為 False 時則會執行另一段區塊。 下列範例將說明這點。

    Dim alertLabel As New System.Windows.Forms.Label
    Sub alertUser(ByVal value As Long)
        If value = 0 Then
            alertLabel.ForeColor = System.Drawing.Color.Red
            alertLabel.Font = New Font(alertLabel.Font, 
                FontStyle.Bold Or FontStyle.Italic)
        Else
            alertLabel.Forecolor = System.Drawing.Color.Black
            alertLabel.Font = New Font(alertLabel.Font, 
                FontStyle.Regular)
        End If
    End Sub
    

若要在第一個條件為 False 時測試其他條件

  • 請使用 If...Then...Else 建構搭配一或多個 ElseIf 陳述式,以在第一個條件為 False 時測試其他條件。 在下列範例中,Function 程序會根據績效等級來計算薪資紅利。 只有當 If 和 ElseIf 陳述式的條件皆為 False 時,跟隨在 Else 陳述式後的陳述式區塊才會執行。

    Function bonus(ByVal performance As Integer, 
                   ByVal salary As Decimal) As Decimal
        If performance = 1 Then
            Return salary * 0.1
        ElseIf performance = 2 Then
            Return salary * 0.09
        ElseIf performance = 3 Then
            Return salary * 0.07
        Else
            Return 0
        End If
    End Function
    

    Visual Basic 會依據條件在 If...Then...Else 陳述式中出現的順序,以進行條件測試。 當遇到 True 條件或 Else 陳述式時,便會執行相對應的陳述式區塊。 然後會將控制權傳遞給 End If 陳述式之後的陳述式。

    您可以擁有數個 ElseIf 陳述式,或是一個都沒有。 您可以加入或省略 Else 陳述式,不論是否有 ElseIf 陳述式。

請參閱

工作

HOW TO:將控制權轉移出控制結構 (Visual Basic)

HOW TO:測試運算式的多個值 (Visual Basic)

HOW TO:發生錯誤時保留控制權 (Visual Basic)

概念

決策結構 (Visual Basic)

迴圈結構 (Visual Basic)

其他控制結構 (Visual Basic)

巢狀控制結構 (Visual Basic)

其他資源

Visual Basic 中的控制流程