• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >vbs > VBS编程教程 (第4篇)

VBS编程教程 (第4篇)

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了vbs脚本编程简明教程,vbs脚本教程,vbs教程,vbs进阶教程,vbs语言教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
四篇(共六篇): 
大家好, 昨天我休息了一天, 所以今天写第4章:循环结构 

  我们先来看一道题:商场进行每日结算, 要求累加出今天的营业额, 每次输入一个数, 这道题其实很简单, 但就我们现在学 

过的知识要完成这道题相当麻烦, 我们来分析一下. 首先, 我们需要知道买卖的次数, 这样才能控制输入的次数,但是, 这种设 

计是非常低效的, 每天都要重新设计程序. 假定今天进行了5次交易, 以下是源程序: 

dim sum 
sum=0 '初始化变量 
sum=sum + int(inputbox("请输入交易额")) 
'sum=sum+x 这种形式是把本身的值取出来, 进行一次运算, 再放回本身, 这种方法很有用处 
'这里使用了函数嵌套, 把inputbox的返回值直接传给int函数, 转化成整数, 下同 
sum=sum + int(inputbox("请输入交易额")) 
sum=sum + int(inputbox("请输入交易额")) 
sum=sum + int(inputbox("请输入交易额")) 
sum=sum + int(inputbox("请输入交易额")) 
msgbox(sum) 

  看到了吗, 我通过把计算过程复制了5遍才设计好了程序, 这种程序在汽车交易所等交易次数少的地方还能凑合着用, 如果 

放到超市岂不是要复制, 粘贴几千遍? 我们今天讲的内容就可以克服这种缺陷, 首先, 我们来讲以下Do...Loop语句. 

  do...loop的结构看上去非常简单, 就是:do...loop, 仅此而已, 这个结构不断执行do和loop之间的语句(学名叫:循环体), 
永不停止. 举个例子来说: 

do 
    msgbox("这个信息会不断重复出现, 要停止程序请使用任务管理器(Ctrl+Alt+Del)中止wscript进程") 
loop 

  运行这个程序, 当你点销掉一个对话框马上会出来另一个, 你永远点不完, 总有下一个. 谁会运行这样的程序? 除非是给 

别人捣乱(我就干过这种事), 所以在do..loop结构中还有一个语句:exit do, 这个语句将终止循环, 跳到loop后面的语句继续 

执行. 据个例子来说: 

dim a '注意:常量不需要在dim里面声明,否则会引发错误 
const pass="123456" '这是一个字符串 请用""包裹起来. 设定密码为常量, 不可变更 
do 
    a=inputbox("请输入密码") 
    if a=pass then 
         msgbox("密码校验成功") 
         exit do 
    end if 
loop 

  这个程序会一直不停的问你密码, 知道你输入了正确的密码为止.(if可以嵌套在另一个if当中, 也可以嵌套在循环体当中 

, 所以一定要用缩进, 来分清楚程序的各个部分). 这个程序是很经典的, 早期的程序都是这么做的. 但是我们是Hacker, 所以 

我们了解系统的安全性, 这种无限次认证程序很容易被穷举破解, 我们要来限定认证的次数. 修改程序如下 

dim a,ctr 
ctr=0 '设置计数器 
const pass="pas123_" '上面的那个是弱密码, 这次改的强一点 
do 
    if ctr=3 then 
        msgbox("已经达到认证上限, 认证程序关闭") 
        exit do 
    else 
        a=inputbox("请输入密码") 
        if a=pass then 
            msgbox("认证成功") 
            msgbox("(你可以在这里加一段成功后得到的信息)") 
            exit do 
        else 
            ctr=ctr+1 '如果密码出错就增加一次错误认证计数 
            msgbox("认证出错, 请检查密码") 
        end if 
     end if 
loop 

  运行这个程序试试看, 当你出了3此错误以后, 就会停止再次询问密码, 关闭程序. telnet认证用来限制次数的程序与此大 

同小异. 要注意的是嵌套的if语句, 清仔细读一下这个程序, 可能比较难懂, 也请你试着自己设计一下类似的程序. 

  其实, 要在do...loop加上验证的功能, 并不一定要用if, 我们可以直接利用do. 我来介绍一下while关键字, while可以放 
在do或者是loop后面, 然后再接一个表达式, 当表达式的值为true的时候(表达式成立),才运行循环体.我们来看一下修改后的 
程序" 

dim a,ctr 
ctr=0 
const pass="pas123_" 
do while ctr<3 
    a=inputbox("请输入密码") 
    if a=pass then 
        msgbox("认证成功") 
        msgbox("(你可以在这里加一段成功后得到的信息)") 
        exit do 
    else 
        ctr=ctr+1 '如果密码出错就增加一次错误认证计数 
        msgbox("认证出错, 请检查密码") 
    end if 
loop 

  这样实现的功能和上一个例子完全一样, 我们再来看看把while放在loop后面: 

dim a,ctr 
ctr=0 
const pass="pas123_" 
do 
    a=inputbox("请输入密码") 
    if a=pass then 
        msgbox("认证成功") 
        msgbox("(你可以在这里加一段成功后得到的信息)") 
        exit do 
    else 
        ctr=ctr+1 '如果密码出错就增加一次错误认证计数 
        msgbox("认证出错, 请检查密码") 
    end if 
loop while ctr<3 

  功能是一样的, 为什么要放在loop后面呢? 你把ctr的值改成3就知道了, while在do后面的程序会直接退出, 而在loop后面 

还会允许一次认证, 到了loop才结束.和while相反的是until, 用法和while一样, 不过他只有当后面的表达式的值为false(表 

达式不成立)的时候才执行循环体, 请自己试验一下 

  ok, 我们来看另外一种循环结构,for....next, 这种循环结构是基于计数的, 也是在编程中最常见到的循环结构. 

dim i 
for i=0 to 5 
    msgbox(i) 
next 

  看到了吗?每次输出的i都是递增的, 但我们没有明确指出i要递增, 当i达到5的时候, 循环就结束了, 因为由0开始, 所以 

循环体执行了6次, 这一点很重要, 大部分东西都是从0开始而不是1. 这个程序也可以写成 

do的形式: 

dim i 
i=0 
do while i<5 
    msgbox(i) 
    i=i+1 '因为do不能自动计数, 必须手动加 
loop 

  怎么样, 还是for比较好用吧. for在编程中很有用途, 我们再举一个例子, 顺便讲一下嵌套循环. 

dim i,j 
for i=1 to 9 
    for i=1 to 9 
   

您可能想查找下面的文章:

  • Vbs 脚本编程简明教程之一
  • VBS编程教程第一部
  • VBS基础编程教程 (第6篇)
  • VBS基础编程教程 (第5篇)
  • VBS基础编程教程 (第4篇)
  • VBS基础编程教程 (第3篇)
  • VBS编程教程 (第2篇)
  • VBS基础编程教程 (第1篇)
  • VBS编程教程 (第6篇)
  • VBS编程教程 (第5篇)

相关文章

  • VBS教程:函数-IsArray 函数
  • VBS教程:运算符-减运算符 (-)
  • VBScript 打造自己的远程CMDShell附使用教程
  • 多进程的实现投票的vbs脚本
  • 妙用VBScript自制IE工具栏按钮的代码
  • vbs实现的汉字转拼音的函数
  • VBS变量名Wsh等于WScript对象?
  • VBS教程:运算符-除运算符 (/)
  • 一次载入2个vbs脚本的方法
  • VBS相册生成脚本[

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 一个把任何文件转成批处理的vbs脚本Any2Bat.vbs
    • 通过vbs修改目录名称与快捷方式名称的实现代码
    • 用vb和vbs 破解flashxp的密码的代码
    • 使用 Iisftp.vbs 列出FTP站点的方法
    • window通过vbs+bat实现自动在后台运行nodejs application
    • VBS教程:函数-StrComp 函数
    • 利用wsc制作的一个asp后门
    • vbs搜索文件名或者得到目录列表
    • VBS加密与VBE解密实现方法
    • 算阶乘的vbs小程序

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有