VBS基础篇 - 循环语句(3) - For...Next
指定循环次数,使用计数器重复运行语句,语法结构如下:
1
2
3
4
5
|
For counter = start To end [ Step step] [statements] [ Exit For ] [statements] Next |
主要参数:
counter:用做循环计数器的数值变量。这个变量不能是数组元素或用户自定义类型的元素。
start:counter的初值。
end:counter的终值。
step:counter的步长。如果没有指定,则step的默认值为1。
具体示例代码如下:
For…Next
1
2
3
4
5
|
Dim Count:Count = 0 '定义一个变量,并赋值为0 For i = 1 To 10 '循环10次 Count = Count + 1 Next MsgBox Count '输出10 |
Step设置计数器循环步长
1
2
3
4
5
|
Dim Count:Count = 0 '定义一个变量,并赋值为0 For i = 1 To 10 Step 2 '设置计数器步长为2,循环5次 Count = Count + 1 Next MsgBox Count '输出5 |
退出循环
Exit For 语句用于在计数器达到其终止值之前退出 For...Next 语句。因为通常只是在某些特殊情况下(例如在发生错误时)要退出循环,所以可以在 If...Then...Else 语句的 True 语句块中使用 Exit For 语句。如果条件为 False,循环将照常运行。
1
2
3
4
5
6
7
8
|
Dim Count:Count = 0 '定义一个变量,并赋值为0 For i = 1 To 10 '循环10次 Count = Count + 1 If Count = 5 Then '当变量Count的值为5时,退出当前循环 Exit For End If Next MsgBox Count '输出5 |
VBS基础篇 - 循环语句(2) - While...Wend
当条件为True时循环,语法结构如下:
1
2
3
|
While condition [statements] Wend |
主要参数:
condition:数值或字符串表达式,其值为True或False。如果condition为Null,则condition被当作False。
statements:当condition为True时被重复执行的一条或多条命令。
具体示例代码如下:
1
2
3
4
5
6
|
Dim Count:Count = 5 '定义一个变量 While Count <> 0 '当Count变量值不等于0,一直循环 MsgBox Count Count = Count -1 Wend MsgBox "循环结束" |
While…Wend没有Exit语句,从头一直循环到尾,若要在中途退出,则需用Do…Loop语句。
VBS基础篇 - 循环语句(1) - Do 循环
循环用于重复执行一组语句。循环可分为三类:一类在条件变为 False 之前重复执行语句,一类在条件变为 True 之前重复执行语句,另一类按照指定的次数重复执行语句。
在 VBScript 中可使用下列循环语句:
Do...Loop: 当(或直到)条件为 True 时循环。
While...Wend: 当条件为 True 时循环。
For...Next: 指定循环次数,使用计数器重复运行语句。
For Each...Next:对于集合中的每项或数组中的每个元素,重复执行一组语句。
Do 循环
当(或直到)条件为True时循环,语法结构如下:
当条件为True时重复执行某语句块
1
2
3
4
5
|
Do [{ While | Until } condition] [statements] [ Exit Do ] [statements] Loop |
当条件变为True之前重复执行某语句块
1
2
3
4
5
|
Do [statements] [ Exit Do ] [statements] Loop [{ While | Until } condition] |
主要参数:
condition:数值或字符串表达式,其值为True或False。如果condition为Null,则condition被当作False
statements:当condition为True时被重复执行的一条或多条命令
具体示例代码如下:
重复执行语句直到条件变为True
1
2
3
4
5
6
7
8
9
10
11
12
|
Dim Count:Count = 5 '定义一个变量 Do Until Count = 0 '直到Count变量为0时,否则一直循环 MsgBox Count Count = Count -1 Loop MsgBox "循环结束" Dim Count:Count = 5 '定义一个变量 Do MsgBox Count Count = Count -1 Loop Until Count = 0 '直到Count变量为0时,否则一直循环 MsgBox "循环结束" |
当条件变为True之前重复执行某语句块
1
2
3
4
5
6
7
8
9
10
11
12
|
Dim Count:Count = 5 '定义一个变量 Do While Count <> 0 '当Count变量为0时,停止循环 MsgBox Count Count = Count -1 Loop MsgBox "循环结束" Dim Count:Count = 5 '定义一个变量 Do MsgBox Count Count = Count -1 Loop While Count <> 0 '当Count变量为0时,停止循环 MsgBox "循环结束" |
退出循环
Exit Do 语句用于退出 Do...Loop 循环。因为通常只是在某些特殊情况下要退出循环(例如要避免死循环),所以可在 If...Then...Else 语句的 True 语句块中使用 Exit Do 语句。如果条件为 False,循环将照常运行。示例代码如下:
1
2
3
4
5
6
7
8
9
|
Dim Count:Count = 5 '定义一个变量 Do While Count <> 0 '当Count变量为0时,停止循环 MsgBox Count Count = Count -1 If Count = 2 Then '判断Count变量值是否为2,如果是则退出循环 Exit Do End If Loop MsgBox "循环结束" |
VBS基础篇 - 条件语句(2) - Select Case
Select Case结构提供了 If...Then...ElseIf结构的一个变通形式,可以从多个语句块中选择执行其中的一个。Select Case语句提供的功能与 If...Then...Else语句类似,但是可以使代码更加简练易读。
Select Case结构在其开始处使用一个只计算一次的简单测试表达式。表达式的结果将与结构中每个 Case 的值比较。如果匹配,则执行与该Case 关联的语句块,示例代码如下:
1
2
3
4
5
6
7
8
|
Dim value '定义一个变量 value = 10 '变量赋值为10 Select Case value '判断变量的值大小,如果相等则输出变量值 Case 0 MsgBox 0 Case 1 MsgBox 1 Case 2 MsgBox 2 Case Else MsgBox "数值超出范围!" '如过都不相等,则输出”数值超出范围!” End Select |
请注意 Select Case结构只计算开始处的一个表达式(只计算一次),而 If...Then...ElseIf 结构计算每个 ElseIf 语句的表达式,这些表达式可以各不相同。仅当每个 ElseIf 语句计算的表达式都相同时,才可以使用 Select Case 结构代替 If...Then...ElseIf 结构。
VBS基础篇 - 条件语句(1) - If...Then...Else
使用条件语句和循环语句可以控制脚本的流程。使用条件语句可以编写进行判断和重复操作的 VBScript 代码。在 VBScript 中可使用以下条件语句:
Select Case 语句
If...Then...Else
If...Then...Else 语句用于计算条件是否为 True 或 False,并且根据计算结果指定要运行的语句。通常,条件是使用比较运算符对值或变量进行比较的表达式。If...Then...Else 语句可以按照需要进行嵌套。
要在条件为 True 时运行单行语句,可使用 If...Then...Else 语句的单行语法
下例示范了单行语法。请注意此例省略了关键字 Else
1
2
3
4
|
Dim myDate '定义一个变量 myDate = #2/13/95# '为变量赋值,时间:95-2-13 If myDate < Now Then myDate = Now '与当前时间判断大小,小则将当前时间赋值MyDate MsgBox myDate '输出变量myDate的值,输出为:95-2-13 |
要运行多行代码,必须使用多行(或块)语法。多行(或块)语法包含 End If 语句
下例示范了多行语法。如下所示:
1
2
3
4
5
6
|
Dim myDate '定义一个变量 myDate = #2/13/95# '为变量赋值,时间:95-2-13 If myDate < Now Then '与当前时间判断大小 myDate = Now‘小则将当前时间赋值MyDate,并输出重新赋值的myDate的值 MsgBox myDate '输出为:95-2-13 End If |
条件为 True 和 False 时分别运行语句
可以使用 If...Then...Else 语句定义两个可执行语句块:条件为 True 时运行某一语句块,条件为 False 时运行另一语句块。具体示例如下所示:
1
2
3
4
5
6
7
8
|
Dim myDate '定义一个变量 myDate = #2/13/2222# '为变量赋值,时间:2222-2-13 If myDate < Now Then '与当前时间判断大小 myDate = Now '小则将当前时间赋值MyDate,并输出重新赋值的myDate的值 MsgBox myDate Else MsgBox myDate '大则直接输出myDate的值,输出为:2222-2-13 End If |
对多个条件进行判断
If...Then...Else 语句的一种变形允许您从多个条件中选择,即添加 ElseIf 子句以扩充 If...Then...Else 语句的功能,使您可以控制基于多种可能的程序流程。具体示例如下所示:
1
2
3
4
5
6
7
8
9
10
11
|
Dim value '定义一个变量 value = 10 '变量赋值为10 If value = 0 Then '判断变量的值大小,如果相等则输出变量值 MsgBox value ElseIf value = 1 Then MsgBox value ElseIf value = 2 then Msgbox value Else Msgbox "数值超出范围!" '如过都不相等,则输出”数值超出范围!” End If |
可以添加任意多个 ElseIf 子句以提供多种选择。使用多个 ElseIf 子句经常会变得很累赘。在多个条件中进行选择的更好方法是使用 Select Case 语句。