Microsoft® Visual Basic® Scripting Edition 使用條件陳述式 |
VBScript 教學 上一頁 | 下一頁 |
您可以使用條件陳述式和迴圈陳述式來控制 script 的流程。使用條件陳述式,您就可以撰寫出執行選擇和重複動作的 VBScript 程式碼。VBScript 中包含了下列的條件陳述式:
- If...Then...Else 陳述式
- Select Case 陳述式
If...Then...Else 陳述式會檢查條件是 True 或是 False,然後再依據這個結果來執行一個或更多個陳述式。條件通常是一個使用比較運算子的運算式,它會比較兩個數值或變數。關於比較運算子的更進一步資訊,請參考比較運算子。您可以在 If...Then...Else 陳述式中依您所需的使用多層巢狀結構。
在條件為 True 時執行陳述式
若您在條件為 True 時只要執行一個陳述式,您就可以使用 If...Then...Else 陳述式的單行語法。下面就是一個單行語法的範例。請注意,這個範例省略了 Else 關鍵字。如果您要執行超過一行以上的程式碼時,您就必須使用多行(或區塊)語法。這個語法包含了一個 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 時執行其它的陳述式
您可以使用 If...Then...Else 陳述式來定義兩個執行區塊:一個區塊在條件是 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 陳述式可以擴充其功能,這樣能讓您的程式有多種不同的流程。舉例來說:您可以依您所需的加上多個 ElseIf 子句以提供其它選項。ElseIf 子句用的太多常常會變成一種麻煩。一個在多種選項之中選擇的較佳辦法是使用 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 "Value out of range!" End If
Select Case 結構提供了 If...Then...ElseIf 外的另一種方式,讓您從多個陳述式區塊中選擇一個出來執行。Select Case 陳述式提供的功能和 If...Then...Else 陳述式類似,但它可使程式更加的有效率,且可讀性更高。Select Case 結構在其前端有一個測試運算式,這個運算式只會被執行一次。執行完的結果將被拿來和每一個 Case 的值做比較。如果有相符的情形時,這個 Case 區塊中的陳述式就會被執行:
請注意到 Select Case 結構只在前端執行一個運算式。相反的, If...Then...ElseIf 結構則可在每一個 ElseIf 陳述式後面執行一個不同的運算式。只有在每一個 ElseIf 陳述式使用的都是同一個運算式時,您才能用 Select Case 結構取代 If...Then...ElseIf 結構。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