VBS基础篇 - 循环(for、Do、While)

所属分类: 脚本专栏 / vbs 阅读数: 400
收藏 0 赞 0 分享

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

循环可分为三类:一类在条件变为 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

更多精彩内容其他人还在看

vbscript Split函数用法详解(字符串转数组函数)

本文详细介绍了vbscript中split函数的用法,有关split函数的一些实例,vbscript中split函数的语法介绍,有需要的朋友参考下
收藏 0 赞 0 分享

VBS实现将Excel表格保存为txt文本

希望能够找到个能给excel表另存为TXT的VBS代码,虽然另存为可以选择,但还是需要直接VBS执行这一步另存为TXT格式的,应该如何写代码呢
收藏 0 赞 0 分享

vbs解决处理TXT文本数据相关问题实现代码

使用vbs处理txt数据时,会遇到一些问题,本文将提供详细的解决方法,希望可以帮助你们
收藏 0 赞 0 分享

关于vbs 生成静态页面过程中出现的问题

访问某个aspx页面,然后把服务器返回的页面以filestream 的形式保存为html格式,接下来将介绍实现代码
收藏 0 赞 0 分享

dim函数第三个参数设置截取字符的长度问题

dim函数的第三个参数,也就是截取字符的长度,我在设置这个的时候,出了些问题,提示无效的过程调用或参数,本文详细介绍如何解决
收藏 0 赞 0 分享

邪恶的eval和new Function使用介绍

这些代码可以干什么?可以肯定的是可以干很多猥琐的事
收藏 0 赞 0 分享

WScript.Shell对象SpecialFolders属性未公开文档分享

WshShell对象的SpecialFolders属性返WshSpecialFolders 对象,该对象是一个特殊文件夹集合,其中包含整套Windows特殊文件夹
收藏 0 赞 0 分享

用VBS修改(设置)系统时间和日期的代码

用 VBS 把系统的时间修改到2038年1月19日3时14分07秒之后,这样某些依赖于 Unix 时间戳的程序就会出问题。那么怎样用 VBS 修改系统的时间呢
收藏 0 赞 0 分享

VBS For Next循环的一些细节

For Next 语句是 VBS 中常用的循环语句,你可能已经用过无数次 For Next 循环,但是你是否注意过它的一些细节呢
收藏 0 赞 0 分享

VBS For Next循环的陷阱分享

在《VBS For Next循环的一些细节》中说到了 For Next 循环的控制变量仅仅在循环开始前求值一次,但是其中存在一处陷阱
收藏 0 赞 0 分享
查看更多