如何:根据一个或多个条件运行语句
更新: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 语句。