If...Then...Else 语句 (Visual Basic)
更新:2007 年 11 月
根据表达式的值,有条件地执行一组语句。
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
-or-
If condition Then [ statements ] [ Else [ elsestatements ] ]
各部分说明
condition
必选。表达式。计算结果必须为 True 或 False,或者是某种可隐式转换为 Boolean 的数据类型。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 语句。如果找到某个值为 True 的 elseifcondition,则会执行紧跟在关联的 Then 之后的语句。如果没有任何 elseifcondition 的计算结果为 True,或者没有 ElseIf 语句,则会执行 Else 之后的语句。执行了 Then、ElseIf 或 Else 后面的语句之后,将继续执行 End If 之后的语句。
提示: |
---|
当计算具有若干可能值的单个表达式时,Select...Case 语句 (Visual Basic) 可能会更有用。 |
在单行格式中,作为 If...Then 判定的结果可能执行多条语句。所有语句必须位于同一行上,并且由逗号分隔。下面的示例说明了这一点。
If A > 10 Then A = A + 1 : B = B + A : C = C + B
在多行格式中,第一行只能是 If 语句。ElseIf、Else 和 End If 语句的前面只能有行标签。多行 If...Then...Else 块必须以 End If 语句结尾。
若要确定 If 语句是否引入多行格式,请检查 Then 关键字后面的内容。如果同一语句中的 Then 后面出现注释以外的任何其他内容,则该语句将被视为单行的 If 语句。如果 Then 不存在,则它必须是多行 If...Then...Else 的开头。
ElseIf 和 Else 子句都是可选。可以根据需要在多行 If...Then...Else 放置任意多个 ElseIf 子句,但任何一个都不能出现在 Else 子句的后面。多行格式可以嵌套在另一个多行格式中。
示例
下面的示例显示多行格式和单行格式的 If...Then...Else 语句。
Dim number, digits As Integer
Dim myString As String
number = 53
If number < 10 Then
digits = 1
ElseIf number < 100 Then
digits = 2
Else
digits = 3
End If
If digits = 1 Then myString = "One" Else myString = "More than one"
在前面的示例中,ElseIf 条件的计算结果为 True,并将值 2 赋给了 digits。最后一个语句随后将值“More than one”赋给 myString。