默认时,脚本中的代码总是按书写的先后顺序来执行的。但在实际应用中,通常要根据条件的成立与否来改变代码的执行顺序,这时就要使用控制结构。在VBScript 中,控制结构有两种,即判定结构和循环结构。
1.判定结构
VBScript支持的判定结构分条件结构和选择结构两种。
(1)条件结构
条件结构分单行结构和块结构。单行结构的语法如下:
其中,condition 是条件表达式。如果condition 为True,则执行Then 后面的语句,否则执行Else 后面的语句;如果省略Else部分,则执行下一条语句。例如:
块结构的语法如下:
VBScript 先测试conditionl。如果为False,再测试condition2,依次类推,直到找到一个为True 的条件。当找到一个为True 的条件时,就执行相应的语句块,然后执行End If 后面的语句。如果条件都不是True,则执行Else 语句块。
例5-12:
(2)选择结构
可以用选择结构来替代块结构的条件语句,以便在多个语句块中有选择地执行其中的一个。选择结构比块结构的条件语句更加易读。选择结构的语法是:
VBScript先计算测试表达式,然后将表达式的值与每个Case 值进行比较。若相等,就执行与该Case 相关联的语句块。每个Case 的值是一个或几个值的列表。如果在一个列表中有多个值,就用逗号把值隔开。如果不止一个Case 与测试表达式匹配,那么只对第一个匹配的Case 执行与之相关联的语句块。如果在表达式列表中没有一个值与测试表达式相匹配,则执行Case Else 子句中的语句。
例5-13:
2.循环结构
循环结构允许重复执行一行或数行代码。在VBScript 中,提供了三种不同风格的循环结构,即Do循环、For循环和For Each循环。
(1)Do 循环
Do循环用于重复执行一个语句块,重复次数不定。
例5-14:
显然,以上代码由于没有设置终止条件,循环会无限地进行下去,即不断将变量加1 后的结果显示出来,直到人工干预。为让循环能终止,必须在循环中用Exit Do 语句立即从循环中退出。
例5-15:(www.xing528.com)
Do循环有几种变种。第一种是:
执行时,首先测试condition。如果condition为False或零,那么跳过所有语句。只要condition为True 或非零,那么循环将一直执行。如果condition 一开始便为False,那么不会执行循环中的语句。如下的例子:
例5-16:
Do 循环的第二种变种是先执行语句,然后在每次执行后测试condition。这种形式保证statements 至少执行一次:
例5-17:
其他两种变种的格式是:
这两种变种类似于前两个,不同的是,只要条件为False 就执行循环。如下面的例子;
例5-18:
(2)For 循环
当不知道循环要执行多少次时,最好用Do 循环。然而,如果知道要执行多少次,则最好使用For 循环。与Do 循环不同,For 循环含有一个计数变量,每重复一次循环,计数变量的值就会增加或减少。For 循环的语法格式是:
执行For 循环时,先将counter 设为start。测试counter 是否大于end,若是,则退出循环(若increment为负,则测试counter是否小于end),否则执行循环中的语句。如下面的例子。
例5-19:
参数counter、start、end 和increment都是数值型。其中,increment可正可负。如果increment为正,那么start必须小于等于end,否则不能执行循环内的语句;如果increment为负,那么start必须大于等于end,这样才能执行循环内的语句。如果省略Step子句,那么increment默认值是1。
类似于Do循环,可以用Exit For语句从For循环中立即退出。
(3)For Each 循环
For Each循环与For 循环类似,但For Each循环只对数组或对象集合中的每个元素重复一组语句,而不是重复一定的次数。如果不知道一个集合有多少个元素,则用For Each 循环非常方便。For Each 循环的语法如下:
如下面的例子。
例5-20:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。