VB sub和function过程的区别

Functionfun(xAsInteger)x=x+1fun=xEndFunctionPrivateSubForm_Click()DimaAsInteger,yAsIn... Function fun(x As Integer)
x = x + 1
fun = x
End Function
Private Sub Form_Click()
Dim a As Integer, y As Integer
a = 3
y = fun(a)
Print a
End Sub

Function fun(x As Integer)
x = x + 1
End Function
Private Sub Form_Click()
Dim a As Integer
a = 3
fun(a)
Print a
End Sub
我可不可以这样理解过程?
y = fun(a) fun返回的值赋给Y 所以他可以进行运算

fun(a) 而下面这个只是调用了过程,没有返回值所以不进行运算?我这样理解对吗?
展开
 我来答
swx1995
推荐于2018-03-11 · TA获得超过2696个赞
知道大有可为答主
回答量:1477
采纳率:0%
帮助的人:2369万
展开全部
没有
sub没有返回值
function有返回值

比如
sub a(num as integer)
end sub

那么你不能dim s:s = a(123)
而如果
function a(num as integer)
end function
你就可以
dim s:s = a(123)

返回值:
如果sub要返回只能通过变量

sub a(num as integer)
num = num + 1
end sub

其他地方:dim s:s = 0:a(s):msgbox "now s="&s
这里a(s)把s的内存地址传进了sub,然后sub里面对这个num=num+1就相当于s=s+1了。

如果用function则可以写成这样:
function a(num as integer)
num = num + 1
a = num
end function
其中a=num这里a就是过程名
外部使用:
dim s:s = 0:a(s):msgbox "now s=" & s:s = a(s):msgbox "now s=" & s
call a(s):function也具有传内存地址的功能,当然function还有返回值:s = a(s)。
具体返回值类型:
[Private | Public] Function 函数名字 (参数) As 返回值类型

说白了 sub是一个过程 给了它内容不能直接返回一个内容的,只能间接;而function是一个函数,例如数学中函数y=kx,其中输入x那么y就是kx的值,这里也一样,有返回值(如把y=2x写成VB的函数就是:
function y(x as integer) as integer
y = 2x
end function
速芙问清婉
2019-06-10 · TA获得超过3850个赞
知道大有可为答主
回答量:3252
采纳率:32%
帮助的人:416万
展开全部
function是函数
函数可以带返回值,
返回值当然要定义类型
所以要多一个as
数据类型
说到返回值
我相信你知道函数是什么意思
就像数学中的函数F(X)
给定X之后
函数就会求得一个值,这个值返回给调用的地方
就叫做返回值
而sub是过程
过程不能带返回值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hejian511
2008-11-14 · TA获得超过846个赞
知道大有可为答主
回答量:1559
采纳率:0%
帮助的人:1480万
展开全部
SUB没有返回值
而Function 做为一个函数使用,则有返回值. 当用CALL调用时..没有返回值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lgf126
2008-11-14 · TA获得超过1101个赞
知道小有建树答主
回答量:1077
采纳率:33%
帮助的人:469万
展开全部
Function称为函数
Sub称为过程

函数可以有返回值,把处理结果直接赋值给函数本身
比如楼主问题里:fun=x,就是把结果直接赋值给函数!这就是函数的返回值!
函数在使用时,不能单独使用(极个别除外)!
比如,print fun(a),前面添加了输出语句!或者y=fun(a),将函数返回值赋值给变量y!所以函数返回值就如同变量一样!
当然如果你写一个没有返回值的函数,那它其实就跟sub一样,是个过程!

过程没有返回值,只能对数据进行处理,需要另外通过变量来传递处理后的数据!
而且过程可以单独使用!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式