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