如何:根据一个或多个条件运行语句

更新:2007 年 11 月

您可以使用 If...Then...Else 语句 (Visual Basic) 并根据条件的 Boolean 数据类型 (Visual Basic) 值执行特定的语句或语句块。条件通常通过两个值的比较得到,但也可以是任何计算为 Boolean 值(True 或 False)的表达式。这包括已转换为 Boolean 的其他数据类型(如数字类型)的值。

在条件为 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 时测试附加条件

  • 在第一个条件为 False 时,使用 If...Then...Else 结构和一个或多个 ElseIf (Visual Basic) 语句测试附加条件。在下面的示例中,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 语句,或者根本没有。无论您是否有任何 ElseIf 语句,都可以包括或省略一个 Else 语句。

请参见

任务

如何:将控制转移到控制结构外

如何:测试表达式的多个值

如何:在发生错误时保持控制

概念

决策结构

循环结构

其他控制结构

嵌套的控制结构

其他资源

控制流 (Visual Basic)