Microsoft® Visual Basic® Scripting Edition 使用條件語句 |
VBScript 教程 上一頁 | 下一頁 |
使用條件語句和循環(huán)語句可以控制 Script 的流程。使用條件語句可以編寫進(jìn)行判斷和重復(fù)操作的 VBScript 代碼。在 VBScript 中可使用以下條件語句:
- If...Then...Else 語句
- Select Case 語句
If...Then...Else 語句用于計(jì)算條件是否為 True 或 False,并且根據(jù)計(jì)算結(jié)果指定要運(yùn)行的語句。通常,條件是使用比較運(yùn)算符對值或變量進(jìn)行比較的表達(dá)式。有關(guān)比較運(yùn)算符的詳細(xì)信息,請參閱比較運(yùn)算符。If...Then...Else 語句可以按照需要進(jìn)行嵌套。
條件為 True 時運(yùn)行語句
要在條件為 True 時運(yùn)行單行語句,可使用 If...Then...Else 語句的單行語法。下例示范了單行語法。請注意此例省略了關(guān)鍵字 Else。要運(yùn)行多行代碼,必須使用多行(或塊)語法。多行(或塊)語法包含 End If 語句,如下所示:Sub FixDate() Dim myDate myDate = #2/13/95# If myDate < Now Then myDate = Now End SubSub AlertUser(value) If value = 0 Then AlertLabel.ForeColor = vbRed AlertLabel.Font.Bold = True AlertLabel.Font.Italic = True End If End Sub條件為 True 和 False 時分別運(yùn)行某些語句
可以使用 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 Sub對多個條件進(jìn)行判斷
If...Then...Else 語句的一種變形允許您從多個條件中選擇,即添加 ElseIf 子句以擴(kuò)充 If...Then...Else 語句的功能,使您可以控制基于多種可能的程序流程。例如:可以添加任意多個 ElseIf 子句以提供多種選擇。使用多個 ElseIf 子句經(jīng)常會變得很累贅。在多個條件中進(jìn)行選擇的更好方法是使用 Select Case 語句。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
Select Case 結(jié)構(gòu)提供了 If...Then...ElseIf 結(jié)構(gòu)的一個變通形式,可以從多個語句塊中選擇執(zhí)行其中的一個。Select Case 語句提供的功能與 If...Then...Else 語句類似,但是可以使代碼更加簡練易讀。Select Case 結(jié)構(gòu)在其開始處使用一個只計(jì)算一次的簡單測試表達(dá)式。表達(dá)式的結(jié)果將與結(jié)構(gòu)中每個 Case 的值比較。如果匹配,則執(zhí)行與該 Case 關(guān)聯(lián)的語句塊:
請注意 Select Case 結(jié)構(gòu)只計(jì)算開始處的一個表達(dá)式(只計(jì)算一次),而 If...Then...ElseIf 結(jié)構(gòu)計(jì)算每個 ElseIf 語句的表達(dá)式,這些表達(dá)式可以各不相同。僅當(dāng)每個 ElseIf 語句計(jì)算的表達(dá)式都相同時,才可以使用 Select Case 結(jié)構(gòu)代替 If...Then...ElseIf 結(jié)構(gòu)。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