vbs特殊结构(选择结构,循环结构,自定义过程)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选择结构
使用条件语句和循环语句可以控制脚本的流程。
使用条件语句可以编写进行判断和重复操作的VBScript 代码。
在VBScript 中可使用以下条件语句:
●If...Then...Else 语句
●Select Case 语句
1. 判断结构:
有些时候语句只有真假两种可能(比如a>b),这时就用变量保存布尔值true和false 的方式来表达真假。
这种变量在某些情况下很有用(比如"开关")。
2. If…then…else结构:
1)条件为True 时运行语句(单分支:)
要在条件为True时运行单行语句,可使用If...Then...Else语句的单行语法,此时省略end if。
例如:
要运行多行代码,必须使用多行(或块)语法。
多行(或块)语法包含End If语句。
例如:
2)条件为True 和False 时分别运行某些语句(双分支)
可以使用If...Then...Else语句定义两个可执行语句块:条件为True时运行某一语句块,条件为False时运行另一语句块。
必须有end if。
例如:
3)对多个条件进行判断(多分支)
If...Then...Else语句的一种变形允许您从多个条件中选择,即添加ElseIf子句以扩充If...Then...Else语句的功能,使您可以控制基于多种可能的程序流程。
例如:if 判断式1 then
语句体1
else if 判断式2 then
语句体2
else 语句体n
end if
end if
…
注意:有几个if,后边就写几个end if。
可以添加任意多个ElseIf子句以提供多种选择。
例如:
3. select case结构:类似于C中的switch_case结构。
Select Case结构提供了If...Then...ElseIf结构的一个变通形式,可以从多个语句块中选择执行其中的一个。
Select Case语句提供的功能与If...Then...Else语句类似,但是可以使代码更加简练易读。
Select Case结构在其开始处使用一个只计算一次的简单测试表达式。
表达式的结果将与结构中每个Case的值比较。
如果匹配,则执行与该Case关联的语句块。
循环控制语句
循环可分为三类:
一类在条件变为False之前重复执行语句;do…loop(可加while)循环、while…wend
循环。
二类在条件变为True之前重复执行语句;do…loop…until循环。
三类按照指定的次数重复执行语句。
for……next循环、for……each循环。
在使用循环控制语句前,首先要对循环条件进行判断。
(1)如果循环次数是有固定次数的,那么使用For……next循环,其结构为:For 计数器变量=开始计数值to 最后计数值
执行循环体
Next
for next循环结构基于计数。
可以自动计数。
每个next对应一个for(就像C中的if和else)用法类似于do loop。
循环可以嵌套使用。
exit for 的作用等同于exit do,用于退出最内层循环。
例如:
(2)For Each...Next不是将语句运行指定的次数,而是对于数组中的每个元素或对象集合中的每一项重复一组语句。
这在不知道集合中元素的数目时非常有用。
如果是需要对数组或对象集合中的每一个元素进行判断,则需要使用for……each循环,其结构为:For each 循环计数变量in 要查看的对象或数组
执行处理语句
Next
注意:在上述两种循环中随时可以使用exit for来退出循环
(3)条件满足时一直执行循环,
While 条件
执行循环体
Wend
do…loop结构:
例如:
(4)如果你希望在条件满足时执行一段代码则使用do…while语句,结构为:
while的用法:放在do或者loop后边,while后边可以放判断结构。
do结构不支持自动计数(C中的++运算)。
例如:
(5)如果你希望在条件不满足时执行代码,则使用do……until语句,结构为:
注意:在这两种循环语句中,你可以使用exit do来退出循环。
过程
在VBScript 中,过程被分为两类:Sub 过程和Function 过程。
1. Sub 过程
Sub 过程是包含在Sub 和End Sub 语句之间的一组VBScript 语句,执行操作但不返回值。
Sub 过程可以使用参数(由调用过程传递的常数、变量或表达式)。
如果Sub 过程无任何参数,则Sub 语句必须包含空括号()。
2. Function 过程
Function 过程是包含在Function 和End Function 语句之间的一组VBScript 语句。
Function 过程与Sub 过程类似,但是Function 过程可以返回值。
Function 过程可以使用参数(由调用过程传递的常数、变量或表达式)。
如果Function 过程无任何参数,则Function 语句必须包含空括号()。
Function 过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。
Function 返回值的数据类型总是Variant。
3. 过程的数据进出
给过程传递数据的途径是使用参数。
参数被作为要传递给过程的数据的占位符。
参数名可以是任何有效的变量名。
使用Sub 语句或Function 语句创建过程时,过程名之后必须紧跟括号。
括号中包含所有参数,参数间用逗号分隔。
4. 要从过程获取数据,必须使用Function 过程。
请记住,Function 过程可以返回值;Sub 过
程不返回值。
5. 在代码中使用Sub和Function 过程
1)调用Function 过程时,函数名必须用在变量赋值语句的右端或表达式中。
例如:Temp = Celsius(fDegrees)或者
MsgBox "温度为" & Celsius(fDegrees) & "摄氏度"
2)调用Sub 过程时,只需输入过程名及所有参数值(实参),参数值之间使用逗号分隔。
如果使用Call 语句,则必须将所有参数包含在括号之中。
下面的示例显示了调用MyProc 过程的两种方式。
一种使用Call 语句;另一种则不使用。
两种方式效果相同。
Call MyProc(firstarg, secondarg)
MyProc firstarg, secondarg
请注意:当不使用Call 语句进行调用时,括号被省略。