Visual Basic Scripting Edition | 語(yǔ)言參考 |
使用條件語(yǔ)句和循環(huán)語(yǔ)句可以控制腳本的流程。使用條件語(yǔ)句可以編寫進(jìn)行判斷和重復(fù)操作的 VBScript 代碼。在 VBScript 中可使用以下條件語(yǔ)句:
If...Then...Else 語(yǔ)句用于計(jì)算條件是否為 True 或 False,并且根據(jù)計(jì)算結(jié)果指定要運(yùn)行的語(yǔ)句。通常,條件是使用比較運(yùn)算符對(duì)值或變量進(jìn)行比較的表達(dá)式。有關(guān)比較運(yùn)算符的詳細(xì)信息,請(qǐng)參閱比較運(yùn)算符。If...Then...Else 語(yǔ)句可以按照需要進(jìn)行嵌套。
要在條件為 True 時(shí)運(yùn)行單行語(yǔ)句,可使用 If...Then...Else 語(yǔ)句的單行語(yǔ)法。下例示范了單行語(yǔ)法。請(qǐng)注意此例省略了關(guān)鍵字 Else。
Sub FixDate()
Dim myDate
myDate = #2/13/95#
If myDate < Now Then myDate = Now
End Sub
要運(yùn)行多行代碼,必須使用多行(或塊)語(yǔ)法。多行(或塊)語(yǔ)法包含 End If 語(yǔ)句,如下所示:
Sub AlertUser(value)
If value = 0 Then
AlertLabel.ForeColor = vbRed
AlertLabel.Font.Bold = True
AlertLabel.Font.Italic = True
End If
End Sub
可以使用 If...Then...Else 語(yǔ)句定義兩個(gè)可執(zhí)行語(yǔ)句塊:條件為 True 時(shí)運(yùn)行某一語(yǔ)句塊,條件為 False 時(shí)運(yùn)行另一語(yǔ)句塊。
Sub AlertUser(value)
If value = 0 Then
AlertLabel.ForeColor = vbRed
AlertLabel.Font.Bold = True
AlertLabel.Font.Italic = True
Else
AlertLabel.Forecolor = vbBlack
AlertLabel.Font.Bold = False
AlertLabel.Font.Italic = False
End If
End Sub
If...Then...Else 語(yǔ)句的一種變形允許您從多個(gè)條件中選擇,即添加 ElseIf 子句以擴(kuò)充 If...Then...Else 語(yǔ)句的功能,使您可以控制基于多種可能的程序流程。例如:
Sub ReportValue(value) If value = 0 Then MsgBox value ElseIf value = 1 Then MsgBox value ElseIf value = 2 then Msgbox value Else Msgbox "
數(shù)值超出范圍!"
End If
可以添加任意多個(gè) ElseIf 子句以提供多種選擇。使用多個(gè) ElseIf 子句經(jīng)常會(huì)變得很累贅。在多個(gè)條件中進(jìn)行選擇的更好方法是使用 Select Case 語(yǔ)句。
Select Case 結(jié)構(gòu)提供了 If...Then...ElseIf 結(jié)構(gòu)的一個(gè)變通形式,可以從多個(gè)語(yǔ)句塊中選擇執(zhí)行其中的一個(gè)。Select Case 語(yǔ)句提供的功能與 If...Then...Else 語(yǔ)句類似,但是可以使代碼更加簡(jiǎn)練易讀。
Select Case 結(jié)構(gòu)在其開始處使用一個(gè)只計(jì)算一次的簡(jiǎn)單測(cè)試表達(dá)式。表達(dá)式的結(jié)果將與結(jié)構(gòu)中每個(gè) Case 的值比較。如果匹配,則執(zhí)行與該 Case 關(guān)聯(lián)的語(yǔ)句塊,示例代碼如下:
Select Case Document.Form1.CardType.Options(SelectedIndex).Text
Case "MasterCard"
DisplayMCLogo
ValidateMCAccount
Case "Visa"
DisplayVisaLogo
ValidateVisaAccount
Case "American Express"
DisplayAMEXCOLogo
ValidateAMEXCOAccount
Case Else
DisplayUnknownImage
PromptAgain
End Select
請(qǐng)注意 Select Case 結(jié)構(gòu)只計(jì)算開始處的一個(gè)表達(dá)式(只計(jì)算一次),而 If...Then...ElseIf 結(jié)構(gòu)計(jì)算每個(gè) ElseIf 語(yǔ)句的表達(dá)式,這些表達(dá)式可以各不相同。僅當(dāng)每個(gè) ElseIf 語(yǔ)句計(jì)算的表達(dá)式都相同時(shí),才可以使用 Select Case 結(jié)構(gòu)代替 If...Then...ElseIf 結(jié)構(gòu)。