VBS基础篇 - 循环(for、Do、While)
经常地,当编写代码时,我们希望将一段代码执行若干次,我们可以在代码中使用循环语句来完成这项工作。
循环可分为三类:一类在条件变为False之前重复执行语句,一类在条件变为True之前重复执行语句,另一类按照指定的次数重复执行语句。
For...Next:指定循环次数,使用计数器重复运行语句
Do...Loop:当条件为true或者直到条件为true时,运行循环
While…Wend:当条件为True时循环
ForEach...Next:对于集合中的每项或数组中的每个元素,重复执行一组语句
For...Next语句
指定循环次数,使用计数器重复运行语句,语法结构如下:
Forcounter=startToend[Stepstep]'counter用做循环计数器的数值变量,start:counter的初值,end:counter的终值,step:counter的步长 [statements] [ExitFor]'退出循环 [statements] Next
DimCount:Count=0'定义一个变量,并赋值为0 Fori=1To10'循环10次,For语句规定计数变量以及它的开始值和结束值 Count=Count+1 Next'Next语句会以1作为步长来递增变量i MsgBoxCount'输出10' 退出循环:ExitFor语句用于在计数器达到其终止值之前退出For...Next语句。 DimCount:Count=0'定义一个变量,并赋值为0 Fori=1To10step2'循环10次,步长为2,通过使用Step关键词,我们可以规定计数变量递增或递减的步进值 Count=Count+1 IfCount=3Then'当变量Count的值为3时,退出当前循环 ExitFor'退出循环 EndIf Next MsgBoxCount'输出3
指定循环次数,使用计数器重复运行语句,语法结构如下:
Forcounter=startToend[Stepstep] [statements] [ExitFor] [statements] Next
主要参数:
counter:用做循环计数器的数值变量。这个变量不能是数组元素或用户自定义类型的元素。
start:counter的初值。
end:counter的终值。
step:counter的步长。如果没有指定,则step的默认值为1。
具体示例代码如下:
For…Next
DimCount:Count=0'定义一个变量,并赋值为0 Fori=1To10'循环10次 Count=Count+1 Next MsgBoxCount'输出10
Step设置计数器循环步长
DimCount:Count=0'定义一个变量,并赋值为0 Fori=1To10Step2'设置计数器步长为2,循环5次 Count=Count+1 Next MsgBoxCount'输出5
退出循环
ExitFor语句用于在计数器达到其终止值之前退出For...Next语句。因为通常只是在某些特殊情况下(例如在发生错误时)要退出循环,所以可以在If...Then...Else语句的True语句块中使用ExitFor语句。如果条件为False,循环将照常运行。
DimCount:Count=0'定义一个变量,并赋值为0 Fori=1To10'循环10次 Count=Count+1 IfCount=5Then'当变量Count的值为5时,退出当前循环 ExitFor EndIf Next MsgBoxCount'输出5
Do循环当(或直到)条件为True时循环
重复执行语句直到条件变为True DimCount:Count=5'定义一个变量 DoUntilCount=0'直到Count变量为0时,否则一直循环 MsgBoxCount Count=Count-1 Loop MsgBox"循环结束" DimCount:Count=5'定义一个变量 Do MsgBoxCount Count=Count-1 LoopUntilCount=0'直到Count变量为0时,否则一直循环 MsgBox"循环结束" 当条件变为True之前重复执行某语句块 DimCount:Count=5'定义一个变量 DoWhileCount<>0'当Count变量为0时,停止循环 MsgBoxCount Count=Count-1 Loop MsgBox"循环结束" DimCount:Count=5'定义一个变量 Do MsgBoxCount Count=Count-1 LoopWhileCount<>0'当Count变量为0时,停止循环 MsgBox"循环结束" ExitDo语句用于退出Do...Loop循环 DimCount:Count=5'定义一个变量 DoWhileCount<>0'当Count变量为0时,停止循环 MsgBoxCount Count=Count-1 IfCount=2Then'判断Count变量值是否为2,如果是则退出循环 ExitDo EndIf Loop MsgBox"循环结束"
While…Wend当条件为True时循环
DimCount:Count=5'定义一个变量 WhileCount<>0'当Count变量值不等于0,一直循环 MsgBoxCount Count=Count-1 Wend MsgBox"循环结束" While…Wend没有Exit语句,从头一直循环到尾,若要在中途退出,则需用Do…Loop语句
ForEach...Next语句
ForEach...Next不是将语句运行指定的次数,而是对于数组中的每个元素或对象集合中的每一项重复一组语句。这在不知道集合中元素的数目时非常有用。
DimDics'定义一个变量 SetDics=CreateObject("Scripting.Dictionary")'定义一个Dictionary对象 Dics.Add"0","Athens"'为Dictionary对象赋值 Dics.Add"1","Belgrade" Dics.Add"2","Cairo" ForEachDicinDics MsgBoxDics.Item(Dic)'循环遍历,且输出Dictionary键值 Next