If...Then...Else 語(yǔ)句
根據(jù)表達(dá)式的值有條件地執(zhí)行一組語(yǔ)句。
If condition Then statements [Else elsestatements ]
或者,使用塊形式的語(yǔ)法:
If condition Then
[statements]
[ElseIf condition-n Then
[elseifstatements]] . . .
[Else
[elsestatements]]
End If
參數(shù)
condition
一個(gè)或多個(gè)下面兩種類型的表達(dá)式:
數(shù)值或字符串表達(dá)式,其運(yùn)算結(jié)果是 True 或 False。如果 condition 是 Null,則 condition 被視為 False。
形如 TypeOf objectname Is objecttype 的表達(dá)式。objectname 是任何對(duì)象的引用,而 objecttype 則是任何有效的對(duì)象類型。如果 objectname 是 objecttype 所指定的一種對(duì)象類型,則表達(dá)式為 True;否則為 False。
Statements
如果 condition 為 True 時(shí),執(zhí)行的一條或多條(以冒號(hào)分開(kāi))語(yǔ)句。
condition-n
同 condition。
elseifstatements
如果相關(guān)的 condition-n 為 True時(shí),執(zhí)行的一條或多條語(yǔ)句。
elsestatements
如果前面沒(méi)有 condition 或 condition-n 表達(dá)式為 True 時(shí),執(zhí)行的一條或多條語(yǔ)句。
說(shuō)明
對(duì)于短小簡(jiǎn)單的測(cè)試,可以使用單行形式(第一種語(yǔ)法)。但塊形式(第二種語(yǔ)法)提供了比單行形式更強(qiáng)的結(jié)構(gòu)化與適應(yīng)性,比較容易閱讀、維護(hù)及調(diào)試。
注意 在單行語(yǔ)法中,可以執(zhí)行多條語(yǔ)句作為 If...Then 判斷的結(jié)果,但所有語(yǔ)句必須在同一行上并且以冒號(hào)分開(kāi),如下列語(yǔ)句所示:
If A > 10 Then A = A + 1 : B = B + A : C = C + B
當(dāng)程序運(yùn)行到 If 塊(第二種語(yǔ)法)時(shí),將測(cè)試 condition。如果 condition 是 True,則執(zhí)行 Then 之后的語(yǔ)句。如 condition 是 False,則每個(gè) ElseIf 部分的條件式(如果有的話)會(huì)依次計(jì)算并加以測(cè)試。當(dāng)找到某個(gè)為 True 的條件時(shí),則其相關(guān)的 Then 之后的語(yǔ)句會(huì)被執(zhí)行。如沒(méi)有一個(gè) ElseIf 語(yǔ)句是 True(或沒(méi)有 ElseIf 子句),則將執(zhí)行 Else 之后的語(yǔ)句。執(zhí)行 Then 或 Else 之后的語(yǔ)句以后,將繼續(xù)執(zhí)行 End If 之后的語(yǔ)句。
Else 和 ElseIf 子句都是可選項(xiàng)的。在 If 塊中可以放置任意多個(gè) ElseIf 子句,但是都必須在 Else 子句之前。If 塊語(yǔ)句可以被嵌套,即被包含在另一個(gè) If 塊語(yǔ)句之中。
要判斷某個(gè)語(yǔ)句是否是一個(gè) If 塊,可檢查 Then 關(guān)鍵字之后是什么。如果在 Then 的同一行之后還有其他非注釋的內(nèi)容,則此語(yǔ)句就是單行形式的 If 語(yǔ)句。
If 塊語(yǔ)句必須是某一行的第一條語(yǔ)句,并且必須以 End If 語(yǔ)句結(jié)束。
要在條件為 True 時(shí)運(yùn)行單行語(yǔ)句,可使用 If...Then...Else 語(yǔ)句的單行語(yǔ)法
下例示范了單行語(yǔ)法。請(qǐng)注意此例省略了關(guān)鍵字 Else