VBS基础教程
作者 佚名
来源 ASP编程
浏览
发布时间 2013-07-09
数学上c=(a+b)*2 和 c=a*2+b*2是等价的, 在VBS中也是如此. 问题出在"+"上, 在VBS中, +不仅仅是加号的意思还表示把两个字符串连接起来,例如"Hello"+"World"="HelloWorld" ,have you understood? 你还记得InoutBox函数的返回值吗? 是字符串! 这就看出问题了吧, 在编程中"1"不等于(<>)1, "1"是一个字符, 而1是一个数, 所以a,b都是字符串变量, "1"+"2"="12", 这就好像我们小时跟伙伴开玩笑问他们1+1=?一样, 我们总是笑着说"错啦,应该是11".但为什么, a可以*2却不发生错误呢? 这时VBS比较智能的一个表现, 如果这个字符串的内容是一个数且对他进行数学运算, 则把字符串强制转换成数参与运算, 如果字符串代表一个数, 但不参加数学运算, 而是参加字符串运算(合并)则当作字符串处理, 所以你看到a+b=12, 这时候a+b的结果(12)是一个字符串, 当它要乘以2的时候就被强制转换成了数字12, 这样我就得到了结果24。 怎么修改这个程序呢? 我们需要用到另一个内建的函数:int, int函数的功能是将输入值转化成整数值, 我们这样修改: c=(int(a)+int(b))*2 这个意思就是把a作为参数传递给int函数, int函数就会返回那个整数(你的输入值), 然后让返回值参与运算, 这样就得到了正确答案.所以,以后如果你用的是inputbox函数的话,最好用int语句加工一下:比如c=int(c) ''c是你自己的变量 另外,还有一个函数:CDbl。如果你想把字符转换为数字,但又不取整时就用这个: 复制代码 代码如下: Dim a,b,c,d,e a=inputbox("a是:","输入半径") b=Inputbox("b是:","输入半径") c=CDbl(a) d=CDbl(b) e=(c+d)*2 msgbox e 你输入1.2,1.3时就会输出5。 上面的实例也可以综合写成: Dim a,b a=CDbl(inputbox("a是:","输入半径")) b=CDbl(Inputbox("b是:","输入半径")) Msgbox (a+b)*2 这样输入1.2,1.3时依然就得出5。不过这样写比较适合学习过一段时间VBS的朋友. 大家是不是觉得这个课程有点枯燥?呵呵, 变量和运算符部分的确是这样的, 不过多多练习也就好了, 这次, 我们写写真正好玩的东西: 流程控制语句. 这个部分开始才是真正的编程. 首先介绍判断结构. 在此之前, 我们先介绍一种简单的变量类型:布尔值(Boolean), 这种变量只有两个可能值:True,Flase,即真或假. 这种变量在某些情况下很有用(比如"开关"). 我们定义一个Boolean变量的方法和其他变量一样, 赋值也一样, 例如: 复制代码 代码如下: dim a,b a=true b=false 注意,true和"true"(加双引号)是不一样的, "true"是字符串,true是布尔值, 千万不能混淆. 回到if语句上来, 我们先来看看简化版的if语句:if 判断式 then 语句体 我们来看一个例子: 复制代码 代码如下: dim a,b a=12 b=13 if b>a then msgbox "B大于A" 我们只看最后一行, a>b这个式子(表达式)有一个返回值, 是Boolean型的. 因为这个式子只有两种可能:b大于a, b不大于a, 所以这个式子也只有两种可能性, 即真或者假. if语句判断这个表达式的返回值是真还是假, 如果是真(true)则执行then后面的语句, 如果是假, 则不执行, 你把a的值改成14看看还会不会弹出对话框? 当我们要在判断之后执行多行语句怎么办呢, 我们需要用语句块来解决, 在这里可以叫块if 复制代码 代码如下: dim a,b a=12 b=13 if a<b then msgbox "A小于B" msgbox "B大于A" end if 两个msgbox函数夹在if和end if之间, 这个部分就是语句块, 块里的每一条语句之前请空出4~8(一个<Tab>键)个格, 这不是必需的, 但是是一个好习惯, 以便看清楚程序的结构. 这样我们就能运行多于一个的语句, 请注意if |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: VBS 硬盘读写统计(分区读写统计)下一篇: VBS For Next循环的一些细节
关于VBS基础教程的所有评论