收藏 分享(赏)

简单的VBS入门教程(带实例).pdf

上传人:HR专家 文档编号:5279026 上传时间:2019-02-18 格式:PDF 页数:37 大小:404.56KB
下载 相关 举报
简单的VBS入门教程(带实例).pdf_第1页
第1页 / 共37页
简单的VBS入门教程(带实例).pdf_第2页
第2页 / 共37页
简单的VBS入门教程(带实例).pdf_第3页
第3页 / 共37页
简单的VBS入门教程(带实例).pdf_第4页
第4页 / 共37页
简单的VBS入门教程(带实例).pdf_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、第 页 简单的 入门教程 (带实例 ) 第一篇 入门 什么是 呢? 的全称是: 微软公司可视化 脚本版。正如其字面所透露 的信息, 的进一步简写是基于 的脚本语 言。我进一步解释一下, 是微软公司出品的 一套可视化编程工具,语法基于 脚本语言,就是不编译成二 进制文件,直接由宿主 解释源代码并执行,简单点说就是你 写的程序不需要编译成 ,而是直接给用户发送 的源程序, 用户就能执行了。 我知道菜鸟现在最关心的就是用什么工具来开发 程序 了,答案是:记事本 我不是开玩笑,其实任何一种文本 编辑器都可以用来开发 开发,只不过记事本是由系统自带 的,比较好找而已。尽管如此,我还是建议你去下载一个专业

2、的 文本编辑器,因为这些工具可以提供 语法高亮等功能,更加方 “ “ 便开发,用哪一个随你喜好,我比较喜欢 。 P 2#$ ,我们先来写一个 程序热热身。 %K 例如 输入并回显你的名字 REM 使用 和 函数 InputBox Msgbox Dim name,msg 请输入你的名字 msg=“ :“ 名称 name=Inputbox(msg,“ “) Msgbox(name)很好的 教程带实例 第 页 把上面的程序清单输入到记事本里面,然后保存为以 为扩 展名的文件“保存类型”里面选择“所有文件”,然后双击运 行,观察运行结果。注意:请自己输入程序清单,不要复制 粘 - 贴 ! 我来解释一下

3、这个程序,第一行和第二行的开头分别是 R 语句和单引号(),这两个东西的作用是相同的,表示本行是注 释行,就是说这两行什么也不干,只是用来说明这段程序的功 能,版权信息等等。注释行是程序最重要的部分之一,尽管它不 是必需的,但对于其他人阅读源代码,以及自己分析源代码是很 有好处的。好的习惯是在必要的地方加上清晰,简洁的注释。 用来声明一个变量,在 中,变量类型并不是那么重 Dm 要,就是说 会帮你自动识别变量类型,而且变量在使用前不 一定要先声明,程序会动态分配变量空间。在 中你不用考虑 储存的是一个整 数 还是一个 小数学 名 叫 “浮 点 数 ”,也不用 m 考虑是不是字 符串 一 串 字

4、 符 ,比如:“ ”, 会自 HW 动帮你 搞 定。所以第 三 行语句可以 删除 , 效 果不会变,但我 强烈 反 对这么 做 ,一个变量的基本 原则 就是:先声明,后使用。变量 名用字 母 开头,可以使用下 划线、数 字,但不能使用 已 经 定 义 的字,比如 ,也不能是 纯数 字。 m 下一行 被 称之为“ 赋值 ”, 符 号“ ”就是 赋值符 号,并不是 = 数学 中的等于号,尽管 看起 来一 样 ,这是正统的 理 解,你要 理 解 成等于也 没 有什么不可以的。 赋值 号的 左边 是一个变量, 右边 是 要 赋 给变量的 值 , 经 过 赋值 以后, 这个变量在程序中等同于 m g “

5、请输入你的名字:”这个字 符串 ,但 当 被再次 复制的 时候 , m g 原值 就会 消失 ,不 光 字 符串 ,其他任何变量都这 样被赋值 , 例 如: , 等等。 =2 =#2222 再往 下, 和 是 内 建的 函数 ,一个 函数 就 g 相 当 于一个“ 黑箱 ”,有输入 参数 和输出 返回值 ,你可以不用 很好的 教程带实例 第 页 了解 函数 是 怎 么运作的,只要了解这个 函数 能干什么就行了,我 们也可以定 义 自己的 函数 ,不过那要等到以后 再讲 。现在我们只 要了解:一个 函数 可以有 返回值 ,也可以 没 有 ; 可以有 参数 ,也 可以 没 有。 例 如 就是有 返

6、回值 的 函数 ,我们用 赋值 号 左边 的变量来“接” 住 的 返回值 就是你输入的 内容 。在 右边 的 括 号里是 参数列 表, 每 个 参数 用“”分 隔 开, 每 个 , 参数 有不同的功 效 ,比如第一个 参数 会 显 示在提示里,我们把 m g 这个变量作为第一个 参数传 给了 函数 ,而 请输入你 m g=“ 的名字:,所以我们在对 话框 的提示 栏 就会 看 到“请输入你的名 “ 字:”第二个 参数 是对 话框 的 标题 ,我们用直接量 学 名 叫 “常 量”,这里是“字 符串常 量” 传递 给 函数 , 当 然你也可以 传递 变 量。 还有很 多参数 ,比如你在“名称”后面

7、 再 加一个 “”然后输入随便一 串 字 符 字 符串 ,用 半角 的双引号( ) 包 , “ “ 裹起 来的一 串 字 符叫做 字 符串 然后运行。 看看 结果,你会发现用 于输入的文本 框 有了 默认 的 值 ,这就是第 三 个 参数 的作用。 函数 是用来输出的 函数 ,在 中 没 有专 门 的输出 函 g 数 语言中的 、 语言中的 ,所以我们只能用对 话 框 来观察输出结果, 的必要 参数 只有一个,就是要输出的 g 内容 ,在这种 情况 下,我们不需要 理 会 的 返回值 。关于 m g 和 我们以后还会在 讨论 , 今天 只是热热身。 g 要点: 注释以 或 开头行在程序中不 起

8、 作用,但能 让 别人更 # R 容易 读 懂 你的程序。 变量好 像 一个 盒子 , 或 一个代号,可以代表你 想 代表的东 2西。变量 赋值 使用“ ”。 = 以( ) 包裹起 来的字 符 称之为“字 符串 ”。 3“ “ 函数像 一个“ 黑箱 ”,有 参数 和 返回值 ,用“ ” 左边 的变 4= 量可以接 住返回值 。很好的 教程带实例 第 页 函数弹 出一个输入对 话框 , 则 用于输出。 5 g 作业: 试验 的第 三 个 参数 。 # 写一段程序输出你的 年龄 。 2写一段程序进行 次 输入,分别输入你和你 父母 的 姓 名要 33 求显 示提示,并分 次 输出。 3很好的 教程

9、带实例 第 页 第二篇 量的基本运算 这 篇讲各 种“量”和基本运 算 。 先说 常 量,这个比较简单。 常 量就是其 值 不可变化的量。 常 量分为两种:第一种,自然 常 量。这么 叫 是因为它们本身 就是 常 量,你 怎 么更 改 的 值 呢?他 永远 都是 ,不可能变成 2# 2# 。就是这个道 理 。 46 如果你在程序中使用“ ”,这 样 的语句 将 会引发一个 错 2#=46 误 。同 样 的,字 符串 也是 常 量。前一 篇 我们编的输入 姓 名的程序 中的“ ”就是一个字 符串常 量,如果你使用“ HW H” “ ”这 样 的语句同 样 会引发一个 错误 。 W = y 第二种

10、,是我们自己定 义 的 常 量,这种量也使用代号,他们 也 被赋值 ,但和变量的不同点在于,他们在定 义 的 时候被赋值 , 以后就不能 改 变了,如果 企图改 变 将 会引发一个 错误 。定 义 一个 变量,我们使用“ ”这个关 键 字关 键 字的意 思 是系统定 义 了 有 特殊 功能的字,不能作为变量名 或常 量名使用, 格式 是: 常 量名 常 量 值 = 例 如: const PI=3.1415926 记忆碎片 const NAME=“ “ 这 样 我们就定 义 了两个 常 量, 和 ,一 般 说来, 常 量 P 名全部使用 大 写,但也可以不用,随你喜好。 将 一些在程序中不 需要

11、 改 变的 值 定 义 为 常 量是个好习惯,这 样 能 防止 不必要的意 外 。 另外 ,使用自定 义常 量也可以 减少 你的工作量。比如: msgbox(“Hello World“) msgbox(“Hello World“)很好的 教程带实例 第 页 msgbox(“Hello World“) msgbox(“Hello World“) msgbox(“Hello World“) 这个程序输出 五次 ,如果你 想 要 改 变输出为 HW y- ,就必 须修改 全部程序, 当 然你可以 手 动 修改 次 ,但如果你 y 5 要输出 次 呢? 常 量就可以 替 我们解 决 这个 问题 : #

12、$ const hw=“Hello World“ msgbox(hw) msgbox(hw) msgbox(hw) msgbox(hw) msgbox(hw) 这 样当 你要 修改 输出的 时候 只要 修改 的 值 就行了。 : 好了,现在我们来 看看 编程的第一 块 重要“基 石 ”:变量。 解释变量最好的 办 法我 觉得 是“ 盒子 ”,一个变量好 像 一个 盒 子 ,里面只能 装 一个东西, 当 你要 装 进去别的东西的 时候 必 须 把 原 有的东西 拿 出来。这个“ 盒子 ”是有名称的, 当 你在程序中使 用变量的 时候 ,系统会 打 开 盒子取 出里面的东西, 让 这些东西 参 与

13、 处 理 ,而不是 盒子 。有些语言是很 依赖 “盒子 ”里面 装 些什么 东西,这 样才 能找到 合适 的“ 盒子 ”(比如 语言),但 给我 提供的是能 够 自动 伸缩 的“ 魔术盒 ”,我们不用关心 装 进去的是 什么东西, 会自动 调 整 盒子 的 大小 。 例 如: Dim a1,a2,a3 a1=14 a2=12.23 a3=“Hello“很好的 教程带实例 第 页 而不用 像 语言那 样麻烦 , 或者 是 的正 规 声明( 可以声 明也可以不用)。 变量有什么用呢?最简单,你并不能 确 定程序运行 时 变量的 值 ,比如前一 篇 我们编的输入 姓 名的程序,你不能 确 定 返 回

14、 的是什么(还记 得 的 返回值吗 ?就是你输入的 内容 ), 所以你就 没 有 办 法 应 对 各 种 情况 ,但我们用 这个“ 盒子 ”把 m 用户的名字 装起 来,到用的 时候 我们只要知道 这个 盒子 的名 m 字就行了,系统会自己 打 开他并把里面的 内容拿 出来用。 再举 个 例子 ,我们编写一个程序 计算 一个 矩形 的面 积 ,比如这个程序要 发给 小学生 使用: dim a,b,s a=15 b=12 s=a*b msgbox(s) 这 样 就可以 求 出 长 为 , 宽 为 的 矩形 的面 积 了,是不是很 #5 #2 简单? 当 然,这个程序也可以这 样 写: dim s

15、 s=15*12 msgbox(s) 这 样看起 来程序 短 了 许多 ,也 节约内 存,但并不是 鼓励 的 做 法,为什么?请 看 下面。 现在,我们的程序要变 得像 点 样子才 行, 谁 的程序写出来还 要别人 修改 源代码 才 能用 啊 ?很好的 教程带实例 第 页 所以,我们要接 受 用户的输入,还记 得吗 ? 函数 。 修改 后程序如下: dim a,b,s 请输入矩形的长 a=inputbox(“ :“) 请输入矩形的宽 b=inputbox(“ :“) s=a*b msgbox(s) ,这么一 修改 , 无论 用户输入 怎样 的 数据 ,我们都能 计算 %K 出 矩形 的面 积

16、了。如果你用 能 改嘛 ? 当 然不行。 =#5*#2 我 想 你已 经 发现了, 中的 数学计算 和 真 正的 算术没 有什么 不同, 、 、 、 都是一 样 的用法,比如: + - * / dim ans ans=12+32/4+(23-10)*2 msgbox(ans) 四则 运 算 的法 则 在编程中同 样生效 ,你可以在编程中重 新获 得小学时候 的 乐趣 (你 恨数学 ?那就别 学电脑 了)。 在编程中有一个有 趣 的运 算符 是 ,这个运 算符叫做取 “m “ “ 余 运 算符 ,就是 取得 一 次除 法的 余数 , 例 如: “ dim a a=16 mod 5 你知道等于 几

17、吗 ? !没错 ,就是 。因为 g# #6 / 5 =3 ,所以 计算 的结果就是 。 # m # 还有一个运 算符 是“”就是 键盘 “ ”上面的 小箭 头,他表 6 很好的 教程带实例 第 页 示“ 乘幂 ”( 或者 是“方”),比如: dim a,b,c a=2 b=a2 c=a3 msgbox(a) msgbox(c) 表示: , =*=4 =*=8 要点: 常 量分为自然 常 量和自定 义常 量, 常 量的 值 不可 修改 。 #变量就 像盒子 ,我们不在 乎盒子 里 装 的是什么,但一定要 2知道 盒子 的名字。 四则 运 算 在编程中 没 有任何不同。 3是 取余 运 算 。 4

18、%D 作业: 编一个程序, 计算圆形 的面 积 , 半径 由用户给出 使用 # 取值 P 3#4#59 编一个程序 取得 的 余数 22$ / 3小黑 在帮 派门口摆摊卖药 , 今天共卖 了 个 灵异天香 , 每 个 56 的出 售价格 为 ,那么他 赚 了 多少钱 ?( 药店 出 售 的 灵异天香 2#7$ 价格 为 ) 2#6$ 在 题目 中, 和 是变量。 大家 可以 想想 代码 怎 么写,然 56 2#7$ 后 再往 下 看 。很好的 教程带实例 第 页 dim m,n,x,msg 小黑在帮派门口摆摊卖药,今天共卖了 个灵异天 msg=“ n 香,每个的出售价格为 ,那么他赚了多少钱?

19、 m “ 灵异天香个数 请在此输入灵异天 n=inputbox(msg,“ n“,“ 香个数 n“) 每个售价 请在此输入每个药的出 m=inputbox(msg,“ m“,“ 售价格 m“) x=(m-2160)*n 答案: msgbox(“ “ & x) 把这段代码复制粘贴到文本文件,然后把文本文件 后 缀改 为 双击运行 看看效 果。如果 看 不到 后 缀 ,去我的 电脑 控 制面 板 文件 夹 选 项查看 去 掉 “隐藏 已知文件类型 的扩展名”对 勾确 定就行了。很好的 教程带实例 第 页 第三篇:条件判断语句 首 先,我来解 决 一下上 篇 的 几 个 疑问 。 第一,那个 余数问

20、题 , ,是因为我 改 过前面的部 #6 / 5 = 3# 分,后面的 忘 了 改 了,不好意 思 。 第二,请 看 一下程序清单: 代码 : 1 Dim a,b,c 是 输入半径 a=inputbox(“a :“,“ “) 是 输入半径 b=Inputbox(“b :“,“ “) c=a*2+b*2 Msgbox(c) 这个 输入 、 时是 1 2 6 代码 : 2 Dim a,b,c 是 输入半径 a=inputbox(“a :“,“ “) 是 输入半径 b=Inputbox(“b :“,“ “) c=(a+b)*2 Msgbox(c) 这个输入 、 时是 1 2 24 为什么会不一 样

21、呢?在 数学 上 和 是等 价 =+*2=*2+*2 的,在 中也是如此。 问题 出在“ ”上:在 中, 不 仅仅 + + 是加号的意 思 还表示把两个字 符串连 接 起 来, 例 如 “H “+“W “=“H W “ 你还记 得 函数 的 返回值吗 ?是字 符串! 这就 看 出 问题 了 吧 ,在编程中“”不等于 ,“ ”是一个字 符 ,而是一个 # # # #很好的 教程带实例 第 页 数 ,所以 、 都是字 符串 变量, ,这就好 像 我们 小时 “#“+“2“=“#2“ 跟伙伴 开玩笑 问 他们 一 样 ,我们 总 是笑 着 说 错啦 , 应该 是 #+#=? “ ,但为什么,可以 却

22、 不发 生错误 呢?这是 比较 智 能的一 #“ *2 个表现,如果这个字 符串 的 内容 是一个 数 且对他进行 数学 运 算 , 则 把字 符串强 制 转换 成 数参与 运 算 ,如果字 符串 代表一个 数 ,但 不 参 加 数学 运 算 ,而是 参 加字 符串 运 算合 并 则当 作字 符串 处 理 , 所以你 看 到 ,这 时候 的结果 是一个字 符串 , 当 它要 +=#2 + #2 乘 以的 时候 就 被强 制 转换 成了 数 字 ,这 样 我就 得 到了结果 。 2 #2 24 怎 么 修改 这个程序呢?我们需要用到 另 一个 内 建的 函数 : 。 函数 的功能是 将 输入 值

23、转 化成整 数值 ,我们这 样修改 : c=(int(a)+int(b)*2 这个意 思 就是把作为 参数传递 给 函数 , 函数 就会 返回 那 个整 数 你的输入 值 ,然后 让返回值参与 运 算 ,这 样 就 得 到了正 确 答案。所以,以后如果你用的是 函数 的 话 ,最好用 语句 加工一下:比如 是你自己的变量 c=int(c) c 这 次 ,我们写写 真 正好玩的东西: 流 程 控 制语句。这个部分 开 始才 是 真 正的编程。 首 先 介绍判断 结 构 。 我们先 介绍 一种简单的变量类型: 布尔 值 ,这种变 量只有两个可能 值 : 、 , 即 真或 假 。这种变量在 某 些

24、情 T F 况 下很有用比如”开关“。我们定 义 一个 变量的方法和其他 变量一 样 , 赋值 也一 样 , 例 如: dim a,b a=true b=false 注意, 和 是不一 样 的。 是字 符串 , 是 布尔 “ “ 很好的 教程带实例 第 页 值 , 千万 不能 混淆 。 回 到 语句上来,我们先来 看看 简化版的 语句: 判断式 语句体 if then 我们来 看 一个 例子 : dim a,b a=12 b=13 大于 if ba then msgbox(“B A“) 我们只 看 最后一行: 这个 式子 表 达 式 有一个 返回值 ,是 型的。因为这个 式子 只有两种可能:

25、大 于,不 大 于,其结 果要么 真 ,要么 假 。 语句 判断 这个表 达 式 的 返回值 是 真 还是 假 , 如果是 真 则 执行 后面的语句 ; 如果是 假 , 则 不执行。你 把的 值改 成 看看 还会不会 弹 出对 话框 。 #4 当 我们要在 判断 之后执行 多 行语句 怎 么 办 呢?我们需要用语 句 块 来解 决 ,在这里可以 叫块 。 dim a,b a=12 b=13 if a 需的,但这 却 是一个好习惯, 目 的是为了 看 清 楚 程序的结 构 。这 样 我们就能运行 多 于一个的语句。请注意 这 三 个关 很好的 教程带实例 第 页 键 部分不要 掉 了。 例 如:

26、输入一个 数 ,如果 小 于 就输出“ 错 #$ 误 ”,如果 大 于 就输出“正 确 ”。我这里有两个程序版本: #$ 程序 #: dim a 请输入一个大于 的数 a=inputbox(“ 100 “) 返回的是字符串,我们把他变成整 a=int(a) inputbox 数: ) 正确 if a100 then msgbox(“ “) 错误 if a100 then 正确 msgbox(“ “) else 错误 msgbox(“ “) end if 看 到 多 了一个 了 吧 。 的作用就是 当 要 判断 的表 达 式 为 时 执行的,这 样 程序就可以处 理 两种不同的 情况 了。不要

27、忘 了用 结 尾 ! 现在我要你处 理三 种 情况 : 、 、 。还要写在一 #$ 个 结 构 里,你 怎 么 办 ?我给你答案: dim a 请输入一个大于 的数 a=inputbox(“ 100 “)很好的 教程带实例 第 页 返回的是字符串 我们把他变成整 a=int(a) inputbox , 数 if a100 then 正确 msgbox(“ “)elseif a=100 then 老大 你耍我 msgbox(“ , ?“)else 错误 msgbox(“ “)end if end if 这 次 输入 看看 是什么? 语句可以在 结 构 中 多次 出 #$ 现,以 灵 活 判断 不

28、同的 情况 如果你要 判断得 太 多 ,就请使用“选 择结 构 ”, 当 所有 都处 理 完 了而 没 有 符合情况 的 时候再 执 , 行 中的语句。 另 一个 例子 : Dim a,b,c,d 是 输入半径 a=inputbox(“a :“,“ “) 是 输入半径 b=Inputbox(“b :“,“ “) 答案 输入答案 d=Inputbox(“ :“,“ “) 这里没有问题 会自动转换 c=a*2+b*2 , if d=c then 你好聪明 Msgbox(“ “) else 你好猪头 自己的题还不会 Msgbox(“ !“) end if 再看看 这个, 无论 你 回 答 得多 么正

29、 确 你都是 猪 头,是文 章 开 始时候 的 的 返回 类型在 耍 你。 是 的 返回值 ,它是 很好的 教程带实例 第 页 一个字 符串; 而是一 次 整 数计算 的结果,它是一个整 数 。一个字 符串无论 如何也不等于一个整 数 ,尽管他们字面上是一 样 的: “8“ 不等于号 ,所以 的 判断式 的 值永远 是 , 总 是执行 部 10“) 输入另一个数 b=inputbox(“ 10“) a=int(a) b=int(b)很好的 教程带实例 第 页 if a10 and b10 then 正确 msgbox(“ “) else 错误 msgbox(“ “) end if 这段程序 让

30、 你输入两个 值 ,必 须 都 大 于 ,只要有一个不 大 #$ 于,就输出 错误 。 dim a,b 输入一个数 a=inputbox(“ 10“) 输入另一个数 b=inputbox(“ 10“) a=int(a) b=int(b) if a10 or b10 then 正确 msgbox(“ “) else 错误 msgbox(“ “) end if 这段程序 让 你输入两个 值 ,只要有一个 大 于 就 返回 成功。 #$ 其实 和 很好 理 解,我读“ ”这一句, 翻 译 #$ #$ 成我们的语言就是:“如果 大 于 或者 大 于 ,那么 ”,这 样 #$ #$ 是不是就很好 理 解

31、了呢。 下面 再 来 看 一种 新 结 构 。 当 你的程序要处 理 很 多 种不同的 判 断情况 的 时候 会 让 程序 看起 来很 杂乱 ,所以就有了一种 结 构 专 门 对 付 这种 情况 。 的语法结 构 很简单: 变量名 值 很好的 教程带实例 第 页 语句 值 语句 语句 我们 举 个 例子 就能很简单的说明: dim a 输入一个 的值 a=inputbox(“ 1-3 “) 处理 返回字符串的问题 a=int(a) inputbox select case a case 1 壹 msgbox(“ “) case 2 贰 msgbox(“ “) case 3 叁 msgbox(“

32、 “) case else 输入错误 msgbox(“ “) end select 这个 例子 把 、 、 这 三 个 阿拉伯 数 字 转 化成中 国 大 写 数 字。 # 2 3 这个程序写成 的 形式 如下: dim a 请输入 的值 a=inputbox(“ 1-3 “) a=int(a) if a=1 then很好的 教程带实例 第 页 壹 msgbox(“ “)else if a=2 then 贰 msgbox(“ “)else if a=3 then 叁 msgbox(“ “)else 输入错误 msgbox(“ “) end if 显 而 易 见 ,这 样 比较 麻烦 ,还是 好

33、。 要点: 返回 的是一个字 符串 ,而不是一个 数 ,如果 想得 到 # 返回值 是 数 ,必 须 用 转 化。 = 变量的 值 只有两种: 、 。 2 两 边 的表 达 式 都是 , 则返回 ; 两 边 的表 达 式 25 有一个是 ,就 返回 。 语句的 格式 。 3 的 格式 。 4 作业: 使用 个 值 ,储存你的 兄弟姐妹 是 否 是 男性 提示: #3 3 #m= 给定一个个 数 , 大 于 而且 小 于 输出“正 确 ”, 否 则 输 2#$ 2$ 出“ 错误 ”。 输入 或者 ,输出“正 确 ”, 否 则 输出“ 错误 ”。 3#2 #5 把以 内 的正整 数 都 转换 成中

34、 国 大 些 数 字。 45 自己随便 设 计 一个程序, 应 用 今天 的知识。 5 很好的 教程带实例 第 页 第四篇 循环结构 我们先来 看 一道 题 : 商场 进行 每 日 结 算 ,要 求 累 加出 今天 的 营 业 额 , 每次 输入一个 数 。这道 题 其实很简单,但就我们现在 学 过的知识要 完 成这道 题 相 当麻烦 。 首 先,我们需要知道 买 卖 的 次 数 ,这 样才 能 控 制输入的 次数 ,但是,这种 设 计 是 非 常 低 效 的, 每天 都要重 新 设 计 程序。 假 定 今天 进行了 次 交 易 ,以下是源程 5 序: dim sum 初始化变量 sum=0

35、请输入交易额 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) 看 到了 吗 ,我 通 过把 计算 过程

36、复制了 遍 才 设 计 好了程序。这 5 种程序在 汽车交 易 所等 交 易次数少 的地方还能 凑 合着 用,如果 放 到 超市岂 不是要复制 、 粘贴 几 千遍 ? ! 我们 今天讲 的 内容 就可以 克服 这种 缺陷 。 首 先,我们来 讲 以下 语句。 D L 的结 构看 上去 非 常 简单,就是: , 仅 此而 已,这个结 构 不 断 执行 和 之间的语句 学 名 叫 : 循环体 , 永 不 停 止 。 举 个 例子 来说:很好的 教程带实例 第 页 do 这个信息会不断重复出现 要停止程序请使用任 msgbox(“ , 务管理器 中止 进程 (Ctrl+Alt+Del) wscrip

37、t “) loop 运行这个程序, 当 你点 销 掉 一个对 话框 马 上会出来 另 一个 你 永远 点不 完 , 总 有下一个。 谁 会运行这 样 的程序? 除 非 是给 别人 捣乱 ,所以在 结 构 中还有一个语句: ,这个语 句 将 终 止 循环 , 跳 到 后面的语句 继续 执行。 举 个 例子 来说: 注意 常量不需要在 里面声明 否则会引发错误 dim a : dim , 这是一个字符串 请用 包裹起 const pass=“123456“ “ 来 设定密码为常量 不可变更 . , do 请输入密码 a=inputbox(“ “)if a=pass then 密码校验成功 msgb

38、ox(“ “)exit doend if loop 这个程序会一直不 停 的 问 你 密 码,直到你输入了正 确 的 密 码 为 止 可以 嵌 套在 另 一个 当 中,也可以 嵌 套在 循环体 当 中,所以 一定要用 缩 进来分清 楚 程序的 各 个部分。这个程序很 经 典 , 早期 的程序都是这么 做 的。但是这种 无 限 次认 证 程序很 容易被 穷 举 破 解,所以要 限 定 认 证 的 次数 。 故 修改 程序如下: dim a,ctr 设置计数器 ctr=0 很好的 教程带实例 第 页 上面的那个是弱密码 这次改 const pass=“pas123_“ , 的强一点 doif ct

39、r=3 then已经达到认证上限 认证程序关闭 msgbox(“ , “)exit doelse请输入密码 a=inputbox(“ “)if a=pass then认证成功 msgbox(“ “)你可以在这里加一段成功后得到的信 msgbox(“( 息 )“) exit doelse如果密码出错就增加一次错误认证计 ctr=ctr+1 数 认证出错 请检查密码 msgbox(“ , “)end ifend if loop 运行这个程序 试试看 。 当 你出了 次错误 后,程序就会 路 上运 3 行。 认 证 用来 限 制 次数 的程序 与 此 大 同 小异 。要注意的是 嵌 套的 语句。 其

40、实,要在 加上 验 证 的功能并不一定要用 ,我们可 以直接 利 用 。下面 介绍 一个关 键 字 。 可以 放 在 或者 : : 是 后面,然后 再 接一个表 达 式 , 当 表 达 式 的 值 为 的 时候 表 达 式 成 立 才 运行 循环体 。我们来 看 一下 修改 后的程序。 程序 #很好的 教程带实例 第 页 dim a,ctr ctr=0 const pass=“pas123_“ do while ctr3 请输入密码 a=inputbox(“ “) if a=pass then 认证成功 msgbox(“ “) 你可以在这里加一段成功后得到的信息 msgbox(“( )“) e

41、xit do else 如果密码出错就增加一次错误认证计数 ctr=ctr+1 认证出错 请检查密码 msgbox(“ , “) end if loop 程序 2 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 ctr3很好的

42、教程带实例 第 页 这两段程序功能是一 样 的,但第二段程序为什么要把 放 : 在 后面呢?你把 的 值改 成 就知道了, 在 后面的程序 3 : 会直接 退 出,而在 后面还会 允 许 一 次认 证 ,到了 才 结 束 。 和 相 反 的是 ,用法和 一 样 ,不过他只有 当 后面的表 : : 达 式 的 值 为 表 达 式 不成 立 的 时候才 执行 循环体 。 我们来 看另外 一种 循环 结 构 : ,这种 循环 结 构 是基 于 计数 的,也是在编程中最 常 见 到的 循环 结 构 。 dim i for i=0 to 5 msgbox(i) next 看 到了 吗 每次 输出的都是

43、递 增 的,但我们 没 有明 确 指 出要 ? 递 增 。 当 达 到 的 时候 , 循环 就结 束 了。因为由 开 始 ,所以 循环 5 $ 体 执行了 次 ,这一点很重要, 大 部分东西都是 从 开 始 而不是 。 6 $ # 这个程序也可以写成 的 形式 : dim i i=0 do while i5 msgbox(i) 因为 不能自动计数 必须手动加 i=i+1 do , loop 从 这段代码不 难 看 出,还是 好用的 多 。我们 再举 一个 例 子 。 顺 便 讲 一下 嵌 套 循环 。 dim i,j for i=1 to 9很好的 教程带实例 第 页 for j=1 to 9

44、 是合并字符串的符号 str=str & i * j & “ “ & 每个 对应一个 next next for next 要注意,这里有一个“ 大 ”的 和一个 小 的 , 当小 的 执 行 完 一个 周期 以后, 大 的 才 执行一 次换 句 话 说, 大 的 执行一 次 , 小 的要执行 次 ,所以一 共 执行了 九九八十 一 次 。在 大 的 9 里可以不 仅仅 是一个 小 的 ,也可以加上 另外 的语句。我们来 修 改 一下源程序: dim i,j for i=1 to 9for j=1 to 9str=str & i * j & “ “ 每个 对应一个 next next for 相当于键盘上的回车键 str=str & vbCrlf vbCrlf , 因为你不能在键盘上输入 所以系统定义了一个默认的常量 , next 这 次 运行 完 成以后,输出结果 按照 乘数 进行了分 割 , 每小 运行 完 一 次 ,就 换 一行 通 过 。 由于上面的两段代码的运行 状 态和结果我是都 看 不到,所以 又 做 如下 修改 ,加上了 显 示语句,并且 格式做 了 调 整: dim i,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报