Content

VBS基础篇 – 循环(for、Do、While)(vb foreach循环用法)居然可以这样

文章摘要

这篇文章介绍了编程中的循环语句及其使用方法,重点分析了三种主要循环类型及其语法结构。 1. **For循环**:用于指定循环次数,通过计数器控制循环执行,支持步长设置和退出循环操作(Exit For)。 2. **Do循环**:分为两种形式,一种在条件为True时执行循环,另一种直到条件为True时终止。支持退出循环操作(Exit Do)。 3. **While循环**:在条件为True时重复执行循环体,没有退出语句则从头到尾一直执行。 此外,文章还介绍了**For Each循环**,用于遍历集合或数组中的每个元素。文章通过示例代码清晰展示了每种循环的用法及其适用场景,帮助读者理解循环控制结构的核心内容。



经常地,当编写代码时,我们希望将一段代码执行若干次,我们可以在代码中使用循环语句来完成这项工作。

循环可分为三类:一类在条件变为 False 之前重复执行语句,一类在条件变为 True 之前重复执行语句,另一类按照指定的次数重复执行语句。

For…Next:指定循环次数,使用计数器重复运行语句

Do…Loop:当条件为 true 或者直到条件为 true 时,运行循环

While…Wend:当条件为True时循环

For Each…Next:对于集合中的每项或数组中的每个元素,重复执行一组语句

For…Next 语句

指定循环次数,使用计数器重复运行语句,语法结构如下:

For counter=start To end [Step step] ‘counter 用做循环计数器的数值变量, start:counter的初值, end:counter的终值, step:counter的步长 [statements] [Exit For] ‘退出循环 [statements] Next
Dim Count:Count=0 ‘定义一个变量,并赋值为0 For i=1 To 10 ‘循环10次 ,For 语句规定计数变量以及它的开始值和结束值 Count=Count + 1 Next ‘Next 语句会以 1 作为步长来递增变量i MsgBox Count ‘输出10 ‘ 退出循环:Exit For 语句用于在计数器达到其终止值之前退出 For…Next 语句。 Dim Count:Count=0 ‘定义一个变量,并赋值为0 For i=1 To 10 step 2 ‘循环10次,步长为2,通过使用 Step 关键词,我们可以规定计数变量递增或递减的步进值 Count=Count + 1 If Count=3 Then ‘当变量Count的值为3时,退出当前循环 Exit For ‘退出循环 End If Next MsgBox Count ‘输出3

指定循环次数,使用计数器重复运行语句,语法结构如下:

For counter=start To end [Step step] [statements] [Exit For] [statements] Next

主要参数:

counter:用做循环计数器的数值变量。这个变量不能是数组元素或用户自定义类型的元素。

start:counter的初值。

end:counter的终值。

step:counter的步长。如果没有指定,则step的默认值为1。

具体示例代码如下:

For…Next

Dim Count:Count=0 ‘定义一个变量,并赋值为0 For i=1 To 10 ‘循环10次 Count=Count + 1 Next MsgBox Count ‘输出10

Step设置计数器循环步长

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,循环将照常运行。

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

Do 循环 当(或直到)条件为True时循环

重复执行语句直到条件变为True 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之前重复执行某语句块 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 循环 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 “循环结束”

While…Wend 当条件为True时循环

Dim Count:Count=5 ‘定义一个变量 While Count <> 0 ‘当Count变量值不等于0,一直循环 MsgBox Count Count=Count -1 Wend MsgBox “循环结束” While…Wend 没有Exit语句,从头一直循环到尾,若要在中途退出,则需用Do…Loop语句

For Each…Next 语句

For Each…Next 不是将语句运行指定的次数,而是对于数组中的每个元素或对象集合中的每一项重复一组语句。这在不知道集合中元素的数目时非常有用。

Dim Dics ‘定义一个变量 Set Dics=CreateObject(“Scripting.Dictionary”) ‘定义一个Dictionary对象 Dics.Add “0”, “Athens” ‘为Dictionary对象赋值 Dics.Add “1”, “Belgrade” Dics.Add “2”, “Cairo” For Each Dic in Dics MsgBox Dics.Item(Dic) ‘循环遍历,且输出Dictionary键值 Next