语句 程序
来源:互联网 发布:mac队残存陆上基地 编辑:程序博客网 时间:2024/05/24 04:06
使用条件语句和循环语句可以控制 Script 的流程。使用条件语句可以编写进行判断和重复操作的 VBScript 代码。在 VBScript 中可使用以下条件语句:
- If...Then...Else 语句
- Select Case 语句
使用 If...Then...Else 进行判断
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 Sub
Sub 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 "数值超出范围!" End If
使用 Select Case 进行判断
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 PromptAgainEnd Select
循环语句
循环用于重复执行一组语句。循环可分为三类:一类在条件变为 False 之前重复执行语句,一类在条件变为True 之前重复执行语句,另一类按照指定的次数重复执行语句。
在 VBScript 中可使用下列循环语句:
- Do...Loop: 当(或直到)条件为True 时循环。
- While...Wend: 当条件为True 时循环。
- For...Next: 指定循环次数,使用计数器重复运行语句。
- For Each...Next: 对于集合中的每项或数组中的每个元素,重复执行一组语句。
使用 Do 循环
可以使用 Do...Loop 语句多次(次数不定)运行语句块。当条件为True 时或条件变为True 之前,重复执行语句块。当条件为 True 时重复执行语句
While 关键字用于检查 Do...Loop 语句中的条件。有两种方式检查条件:在进入循环之前检查条件(如下面的 ChkFirstWhile 示例);或者在循环至少运行完一次之后检查条件(如下面的 ChkLastWhile 示例)。在 ChkFirstWhile 过程中,如果myNum 的初始值被设置为 9 而不是 20,则永远不会执行循环体中的语句。在 ChkLastWhile 过程中,循环体中的语句只会执行一次,因为条件在检查时已经为False。Sub ChkFirstWhile() Dim counter, myNum counter = 0 myNum = 20 Do While myNum > 10 myNum = myNum - 1 counter = counter + 1 Loop MsgBox "循环重复了 " & counter & " 次。" End Sub Sub ChkLastWhile() Dim counter, myNum counter = 0 myNum = 9 Do myNum = myNum - 1 counter = counter + 1 Loop While myNum > 10 MsgBox "循环重复了 " & counter & " 次。" End Sub
重复执行语句直到条件变为 True
Until 关键字用于检查 Do...Loop 语句中的条件。有两种方式检查条件:在进入循环之前检查条件(如下面的 ChkFirstUntil 示例);或者在循环至少运行完一次之后检查条件(如下面的 ChkLastUntil 示例)。只要条件为False,就会进行循环。Sub ChkFirstUntil() Dim counter, myNum counter = 0 myNum = 20 Do Until myNum = 10 myNum = myNum - 1 counter = counter + 1 Loop MsgBox "循环重复了 " & counter & " 次。" End Sub Sub ChkLastUntil() Dim counter, myNum counter = 0 myNum = 1 Do myNum = myNum + 1 counter = counter + 1 Loop Until myNum = 10 MsgBox "循环重复了 " & counter & " 次。" End Sub
退出循环
Exit Do 语句用于退出 Do...Loop 循环。因为通常只是在某些特殊情况下要退出循环(例如要避免死循环),所以可在If...Then...Else 语句的True 语句块中使用 Exit Do 语句。如果条件为False,循环将照常运行。在下面的示例中,myNum 的初始值将导致死循环。If...Then...Else 语句检查此条件,防止出现死循环。
Sub ExitExample() Dim counter, myNum counter = 0 myNum = 9 Do Until myNum = 10 myNum = myNum - 1 counter = counter + 1 If myNum < 10 Then Exit Do Loop MsgBox "循环重复了 " & counter & " 次。" End Sub
使用 While...Wend
While...Wend 语句是为那些熟悉其用法的用户提供的。但是由于While...Wend 缺少灵活性,所以建议最好使用Do...Loop 语句。
使用 For...Next
For...Next 语句用于将语句块运行指定的次数。在循环中使用计数器变量,该变量的值随每一次循环增加或减少。例如,下面的示例将过程 MyProc 重复执行 50 次。For 语句指定计数器变量 x 及其起始值与终止值。Next 语句使计数器变量每次加 1。
关键字 Step 用于指定计数器变量每次增加或减少的值。在下面的示例中,计数器变量 j 每次加 2。循环结束后,total 的值为 2、4、6、8 和 10 的总和。Sub DoMyProc50Times() Dim x For x = 1 To 50 MyProc Next End Sub
要使计数器变量递减,可将 Step 设为负值。此时计数器变量的终止值必须小于起始值。在下面的示例中,计数器变量myNum 每次减 2。循环结束后,total 的值为 16、14、12、10、8、6、4 和 2 的总和。Sub TwosTotal() Dim j, total For j = 2 To 10 Step 2 total = total + j Next MsgBox "总和为 " & total & "。" End Sub
Exit For 语句用于在计数器达到其终止值之前退出 For...Next 语句。因为通常只是在某些特殊情况下(例如在发生错误时)要退出循环,所以可以在 If...Then...Else 语句的True 语句块中使用Exit For 语句。如果条件为 False,循环将照常运行。Sub NewTotal() Dim myNum, total For myNum = 16 To 2 Step -2 total = total + myNum Next MsgBox "总和为 " & total & "。" End Sub
使用 For Each...Next
For Each...Next 循环与 For...Next 循环类似。For Each...Next 不是将语句运行指定的次数,而是对于数组中的每个元素或对象集合中的每一项重复一组语句。这在不知道集合中元素的数目时非常有用。在以下示例中,Dictionary 对象的内容用于将文本分别放置在多个文本框中:
<HTML> <HEAD><TITLE>窗体与元素</TITLE></HEAD> <SCRIPT LANGUAGE="VBScript"> <!-- Sub cmdChange_OnClick Dim d '创建一个变量 Set d = CreateObject("Scripting.Dictionary") d.Add "0", "Athens" '添加键和项目 d.Add "1", "Belgrade" d.Add "2", "Cairo" For Each I in d Document.frmForm.Elements(I).Value = D.Item(I) Next End Sub --> </SCRIPT> <BODY> <CENTER> <FORM NAME="frmForm" <Input Type = "Text"><p> <Input Type = "Text"><p> <Input Type = "Text"><p> <Input Type = "Text"><p> <Input Type = "Button" NAME="cmdChange" VALUE="单击此处"><p> </FORM> </CENTER> </BODY> </HTML>
- 语句 程序
- 程序调试语句汇集
- vc 退出程序语句
- sql 程序语句
- CH02_IF语句示例程序
- 预处理程序--#define 语句
- 程序语句认识初步
- c语言程序打印语句
- 一条语句让程序崩溃
- 一条语句让程序崩溃
- 选择程序的结构语句
- 3.2、C++程序和语句
- 程序猿常用sql语句
- 循环语句的小程序
- c程序之结构语句
- 使用if语句编写程序
- 程序流程控制---选择语句
- 在VC程序中使用调试语句----(二)跟踪语句
- ORA-12560解决办法
- android 修改ramdisk.img和init.rc && android启动后设置/data权限为770
- oracle 字符处理函数
- fork函数的真实义
- Jquery弹出层插件,非常好用绚丽Lee dialog 1.0
- 语句 程序
- 浏览器缓存机制
- SQL UNION 操作符
- div 与 table的区别
- 二分查找算法
- LDAP的特定错误
- Java SE 6 新特性: Instrumentation 新功能
- 3D图形
- fedora8下mysql-standard-5.0.27-linux-i686安装