更新: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 语句。