快速业务通道

VBS编程教程 (第4篇)

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09
四篇(共六篇):
大家好,昨天我休息了一天,所以今天写第4章:循环结构

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

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

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

dimsum
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结构中还有一个语句:exitdo,这个语句将终止循环,跳到loop后面的语句继续

执行.据个例子来说:

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

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

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

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

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

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

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

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

dima,ctr
ctr=0
constpass="pas123_"
dowhilectr<3
a=inputbox("请输入密码")
ifa=passthen
msgbox("认证成功")
msgbox("(你可以在这里加一段成功后得到的信息)")
exitdo
else
ctr=ctr+1''如果密码出错就增加一次错误认证计数
msgbox("认证出错,请检查密码")
endif
loop

  这样实现的功能和上一个例子完全一样,我们再来

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号