学习导航
子程序
函数
4.1 子程序 (Subroutines)
什么是子程序?
“子程序”是将一段具有某种特定功能的语句区块单句撰写成一个独立的程序,给予特定的名称,它的格式如下:
sub 子程序名称 [(参数1,参数2,.. .)]
程序代码
end sub
子程序一定要有名称,调用子程序时就会使用到它的名称。如果没有调用它,子程序并不会执行,请看下面范例。
msgbox "我在外面"
sub A
msgbox "我在里面"
end sub
msgbox "我在外面"
A
sub A
msgbox "我在里面"
end sub
4.2 调用子程序名称 [(参数1,参数2,...)]
方法一:call 子程序名称 参数1,参数2
方法二:子程序名称 参数1,参数2。。。
sub chang(c)
degree=c*1.8+32
msgbox "摄氏" & c & "度转换为华氏" & degree & "度"
end sub
degreec=inputbox("请输入摄氏度:")
chang degreec
msgbox "我在外面"
A
msgbox "我在后面"
sub A
msgbox "我在里面"
end sub
4.3 局部变量和全局变量
A
msgbox "i等于" & i
sub A
i=10
end sub
为什么这里弹出的信息框I的值为空呢,因为子程序里面的I变量是局部变量,到子程序外面已经超出了变量I的有效范围,所以到了子程序之外后变量“I”失效了。
dim i
A
msgbox "i等于" & i
sub A
i=10
end sub
这个程序在子程序之外先用“DIM I”对变量“I”进行声明,这时变量“I”就会变成了“全局变量”,所谓的全局变量就是指不管在程序的哪一部分,包括子程序之内,这个变量都有效果。一般变量只要在子程序之外先声明或是先出现就会变成全局变量,反之就是局部变量。所以只要跳出该程序,那么局部变量就会失效。
4.4 终止执行子程序
一般子程序执行到 end sub 就会结束,但也可以提早结束子程序,而直接跳回原来调用子程序的地方。
A
sub A
I=10
exit sub
msgbox "我不会执行到"
end sub
在程序中直接使用“Exit sub”来跳出子程序,所以 msgbox “…”不会执行到。
4.5 事件驱动
在VBScript中,子程序不仅扮演执行重复动作的角色,还可以侦测到用户对浏览器所做的操作。
格式:
sub 对象_操作
所要响应的程序代码
end sub
sub document_onclick
msgbox "您按到我了!"
end sub
在这个例子中,我们点击了页面单击鼠标时,就会驱动document_onclick这个子程序,而出现一个对话框。“对象”_”事件”中间要以下滑线隔开。
4.6 函数(Functions)
在写程序时,常常遇到一些相同的代码。那么我们经常会用调用的方法去处理。而函数的结构及用法与子程序几乎相同,唯一不同的是函数可以在执行结束的时候返回一个值,而子程序不会。函数是以“Function”开始,”End Function”结束。
格式:function 函数名称 [(参数1,参数2. . .)]
程序代码
函数名称=程序代码
end function
function circle(n)
circle=n*n*3.14
end function
msgbox "半径为10的圆面积为" & circle(10)
function sum(n)
total=0
for I=1 to n
total=total+I
next
sum=total
end function
number=InputBox("请输入一个整数:")
mysum=sum(number)
msgbox "1加到" & number & "的总和为" & mysum
函数不仅能够传入一个参数,您也可以根据实际需求而传入多个参数。
function sum(n,s)
total=0
for I=s to n
total=total+I
next
sum=total
end function
start=inputbox("请输入初始值:")
number=inputbox("请输入一个整数")
mysum=sum(number,start)
msgbox start & "加到" & number & "的总和为" & mysum