• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

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

    发布者: 琛瑞6678 | 发布时间: 2025-8-14 01:30| 查看数: 3| 评论数: 0|帖子模式

    经常地,当编写代码时,我们希望将一段代码执行若干次,我们可以在代码中使用循环语句来完成这项工作。
    循环可分为三类:一类在条件变为 False 之前重复执行语句,一类在条件变为 True 之前重复执行语句,另一类按照指定的次数重复执行语句。
    For...Next:指定循环次数,使用计数器重复运行语句
    Do...Loop:当条件为 true 或者直到条件为 true 时,运行循环
    While…Wend:当条件为True时循环
    For Each...Next:对于集合中的每项或数组中的每个元素,重复执行一组语句
    For...Next 语句
    指定循环次数,使用计数器重复运行语句,语法结构如下:
    1. For counter = start To end [Step step] 'counter 用做循环计数器的数值变量, start:counter的初值, end:counter的终值, step:counter的步长
    2.   [statements]
    3.   [Exit For] '退出循环
    4.   [statements]
    5. Next
    复制代码
    1. Dim Count:Count = 0 '定义一个变量,并赋值为0
    2. For i = 1 To 10 '循环10次 ,For 语句规定计数变量以及它的开始值和结束值
    3.   Count = Count + 1
    4. Next 'Next 语句会以 1 作为步长来递增变量i
    5. MsgBox Count '输出10 '

    6. 退出循环:Exit For 语句用于在计数器达到其终止值之前退出 For...Next 语句。

    7. Dim Count:Count = 0 '定义一个变量,并赋值为0
    8. For i = 1 To 10 step 2 '循环10次,步长为2,通过使用 Step 关键词,我们可以规定计数变量递增或递减的步进值
    9.   Count = Count + 1
    10.   If Count = 3 Then '当变量Count的值为3时,退出当前循环
    11.     Exit For '退出循环
    12.   End If
    13. Next
    14. MsgBox Count '输出3
    复制代码
    指定循环次数,使用计数器重复运行语句,语法结构如下:
    1. For counter = start To end [Step step]
    2.   [statements]
    3.   [Exit For]
    4.   [statements]
    5. Next
    复制代码
    主要参数:
    counter:用做循环计数器的数值变量。这个变量不能是数组元素或用户自定义类型的元素。
    start:counter的初值。
    end:counter的终值。
    step:counter的步长。如果没有指定,则step的默认值为1。
    具体示例代码如下:
    For…Next
    1. Dim Count:Count = 0 '定义一个变量,并赋值为0
    2. For i = 1 To 10 '循环10次
    3.   Count = Count + 1
    4. Next
    5. MsgBox Count '输出10
    复制代码
    Step设置计数器循环步长
    1. Dim Count:Count = 0 '定义一个变量,并赋值为0
    2. For i = 1 To 10 Step 2 '设置计数器步长为2,循环5次
    3.   Count = Count + 1
    4. Next
    5. MsgBox Count '输出5
    复制代码
    退出循环
    Exit For 语句用于在计数器达到其终止值之前退出 For...Next 语句。因为通常只是在某些特殊情况下(例如在发生错误时)要退出循环,所以可以在 If...Then...Else 语句的 True 语句块中使用 Exit For 语句。如果条件为 False,循环将照常运行。
    1. Dim Count:Count = 0 '定义一个变量,并赋值为0
    2. For i = 1 To 10 '循环10次
    3.   Count = Count + 1
    4.   If Count = 5 Then '当变量Count的值为5时,退出当前循环
    5.     Exit For
    6.   End If
    7. Next
    8. MsgBox Count '输出5
    复制代码
    Do 循环 当(或直到)条件为True时循环
    1. 重复执行语句直到条件变为True

    2. Dim Count:Count = 5 '定义一个变量
    3. Do Until Count = 0 '直到Count变量为0时,否则一直循环
    4.   MsgBox Count
    5.   Count = Count -1
    6. Loop
    7. MsgBox "循环结束"

    8. Dim Count:Count = 5 '定义一个变量
    9. Do
    10.   MsgBox Count
    11.   Count = Count -1
    12. Loop Until Count = 0 '直到Count变量为0时,否则一直循环
    13. MsgBox "循环结束"

    14. 当条件变为True之前重复执行某语句块

    15. Dim Count:Count = 5 '定义一个变量
    16. Do While Count <> 0 '当Count变量为0时,停止循环
    17.   MsgBox Count
    18.   Count = Count -1
    19. Loop
    20. MsgBox "循环结束"

    21. Dim Count:Count = 5 '定义一个变量
    22. Do
    23.   MsgBox Count
    24.   Count = Count -1
    25. Loop While Count <> 0 '当Count变量为0时,停止循环
    26. MsgBox "循环结束"

    27. Exit Do 语句用于退出 Do...Loop 循环

    28. Dim Count:Count = 5 '定义一个变量
    29. Do While Count <> 0 '当Count变量为0时,停止循环
    30.   MsgBox Count
    31.   Count = Count -1
    32.   If Count = 2 Then '判断Count变量值是否为2,如果是则退出循环
    33.     Exit Do
    34.   End If
    35. Loop
    36. MsgBox "循环结束"
    复制代码
    While…Wend 当条件为True时循环
    1. Dim Count:Count = 5 '定义一个变量
    2. While Count <> 0 '当Count变量值不等于0,一直循环
    3.   MsgBox Count
    4.   Count = Count -1
    5. Wend
    6. MsgBox "循环结束"

    7. While…Wend 没有Exit语句,从头一直循环到尾,若要在中途退出,则需用Do…Loop语句
    复制代码
    For Each...Next 语句
    For Each...Next 不是将语句运行指定的次数,而是对于数组中的每个元素或对象集合中的每一项重复一组语句。这在不知道集合中元素的数目时非常有用。
    1. Dim Dics '定义一个变量
    2. Set Dics = CreateObject("Scripting.Dictionary") '定义一个Dictionary对象
    3. Dics.Add "0", "Athens"  '为Dictionary对象赋值
    4. Dics.Add "1", "Belgrade"
    5. Dics.Add "2", "Cairo"
    6. For Each Dic in Dics
    7.   MsgBox Dics.Item(Dic) '循环遍历,且输出Dictionary键值
    8. Next
    复制代码

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表