![]() | |
|
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