If...Then...Else 语句

根据表达式的值有条件地执行一组语句。

If condition Then statements [Else elsestatements ]

或者,使用块形式的语法:

If condition Then
[statements]
[ElseIf condition-n Then

[elseifstatements]] . . .
[Else

[elsestatements]]
End If

参数

condition

一个或多个下面两种类型的表达式:

数值字符串表达式,其运算结果是 TrueFalse。如果 conditionNull,则 condition 被视为 False

形如 TypeOf objectname Is objecttype 的表达式。objectname 是任何对象的引用,而 objecttype 则是任何有效的对象类型。如果 objectname 是 objecttype 所指定的一种对象类型,则表达式为 True;否则为 False。

Statements

如果 conditionTrue 时,执行的一条或多条(以冒号分开)语句。

condition-n

同 condition。

elseifstatements

如果相关的 condition-nTrue时,执行的一条或多条语句。

elsestatements

如果前面没有 conditioncondition-n 表达式为 True 时,执行的一条或多条语句。

说明

对于短小简单的测试,可以使用单行形式(第一种语法)。但块形式(第二种语法)提供了比单行形式更强的结构化与适应性,比较容易阅读、维护及调试。

注意 在单行语法中,可以执行多条语句作为 If...Then 判断的结果,但所有语句必须在同一行上并且以冒号分开,如下列语句所示:

If A > 10 Then A = A + 1 : B = B + A : C = C + B

当程序运行到 If 块(第二种语法)时,将测试 condition。如果 conditionTrue,则执行 Then 之后的语句。如 conditionFalse,则每个 ElseIf 部分的条件式(如果有的话)会依次计算并加以测试。当找到某个为 True 的条件时,则其相关的 Then 之后的语句会被执行。如没有一个 ElseIf 语句是 True(或没有 ElseIf 子句),则将执行 Else 之后的语句。执行 ThenElse 之后的语句以后,将继续执行 End If 之后的语句。

ElseElseIf 子句都是可选项的。在 If 块中可以放置任意多个 ElseIf 子句,但是都必须在 Else 子句之前。If 块语句可以被嵌套,即被包含在另一个 If 块语句之中。

要判断某个语句是否是一个 If 块,可检查 Then 关键字之后是什么。如果在 Then 的同一行之后还有其他非注释的内容,则此语句就是单行形式的 If 语句。

If 块语句必须是某一行的第一条语句,并且必须以 End If 语句结束。

要求

版本 1