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