快速业务通道

VBS基础编程教程 (第3篇)

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09
第三篇(共六篇):
首先,我来解决一下上次课程的几个疑问

第一,那个余数问题,16/5=3...1,是因为我改过前面的部分,后面的忘了改了,不好意思.

第二,请看一下程序清单:

1)
Dima,b,c
a=inputbox("a是:","输入半径")
b=Inputbox("b是:","输入半径")
c=a*2+b*2
Msgbox(c)
这个输入1、2时是6

2)
Dima,b,c
a=inputbox("a是:","输入半径")
b=Inputbox("b是:","输入半径")
c=(a+b)*2
Msgbox(c)
这个输入1、2时是24

 为什么会不一样呢?在数学上c=(a+b)*2和c=a*2+b*2是等价的,在VBS中也是如此.问题出在"+"上,在VBS中,+不仅仅是加号的意思还表示把两个字符串连接起来,例如"Hello"+"World"="HelloWorld"haveyouunderstood?你还记得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是你自己的变量

  大家是不是觉得这个课程有点枯燥,呵呵,变量和运算符部分的确是这样的,不过多多练习也就好了,这次,我们写写真正好玩的东西:流程控制语句.这个部分开始才是真正的编程.

  首先介绍判断结构.

  在此之前,我们先介绍一种简单的变量类型:布尔值(Boolean),这种变量只有两个可能值:True,Flase,即真或假.这种变量在某些情况下很有用(比如"开关").我们定义一个bool变量的方法和其他变量一样,赋值也一样,例如:

dima,b
a=true
b=false

  注意,true和"true"是不一样的,"true"是字符串,true是布尔值,千万不能混淆.

  回到if语句上来,我们先来看看简化版的if语句:if判断式then语句体 我们来看一个例子:

dima,b
a=12
b=13
ifb>athenmsgbox("B大于A")

  我们只看最后一行,a>b这个式子(表达式)有一个返回值,是bool型的.因为这个式子只有两种可能:b大于a,b不大于a,所以这个式子也只有两种可能性,即真或者假.if语句判断这个表达式的返回值是真还是假,如果是真(true)则执行then后面的语句,如果是假,则不执行,你把a的值改成14看看还会不会弹出对话框?

  当我们要在判断之后执行多行语句怎么办呢,我们需要用语句块来解决,在这里可以叫块if

dima,b
a=12
b=13
ifa<bthen
msgbox("A小于B")
msgbox("B大于A")
endif

  两个msgbox函数夹在if和endif之间,这个部分就是语句块,块里的每一条语句之前请空出4--8(一个<Tab>键)个格,这不是必需的,但是是一个好习惯,以便看清楚程序的结构.这样我们就能运行多于一个的语句,请注意if...then...endif这三个关键部分不要掉了.OK,我出一个题,输入一个数,如果小于100就输出"错误",如果大于100就输出"正确",我这里有两个程序版本:

dima
a=inputbox("请输入一个大于100的数")
a=int(a)''inputbox返回的是字符串,我们把他变成整数:)
ifa>100thenmsgbox("正确")
ifa<100thenmsgbox("错误")

还有一个更简单的

dima
a=inputbox(

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号