vb function sub 问题

来源:百度知道 编辑:UC知道 时间:2024/09/27 20:11:44
Function are(q As Integer) As Integer
are = q * q
End Function
Sub arw(w As Integer)
dim n as integer
n = w * w
Print n
End Sub

Private Sub Form_Click()
Dim z As Integer
z = 10
Print are(10)
arw z
End Sub
上面两个过程能帮我分析一下吗?
Function are = q * q :把q*q的值赋给are 我可以这样理解吗?
sub n = w * w:把w*w的值赋给n 我可以这样理解吗?
Function过程中的过程名are我可以把它当做sub过程中的n吗?还是还有其他的区别? 难道就是比sub过程中可以少用一个变量?
有返回值和没返回值 他们的作用和差别在什么地方?能说点通俗一点吗?最好带例子 好的我加分

Function和Sub最大区别就是Function有返回值,而Sub则没有。小心 Function 过程可以是递归的;也就是说,该过程可以调用自己来完成某个特定的任务。不过,递归可能会导致堆栈上溢。通常 Static 关键字和递归的 Function 过程不在一起使用。
Function 过程与 Sub 过程的相似之处是: Function 过程是一个可以获取参数,执行一系列语句,以及改变其参数值的独立过程,而与子过程不同的是:当要使用该函数的返回值时,可以在表达式的右边使用 Function 过程,这与内部函数,诸如 Sqr、Cos 或 Chr 的使用方式一样。

Sub 多用在一些事件 动作,就是要产生最终结果的那种.
Sub象汇编语言中的操作思维方式,Function是C语言中的典型方式.
而Function完全可以代替Sub, 除了Sub的功能之外,他可以直接将结果传送给=号的左边.而不需要按地址来传递参数(byref)
例如: 已知A和B,求和C,以下两种方式求得的C的结果是一样的.
1.Sub编写
Call Add(c,a,b)
Sub Add(byref c,byref a ,byref b)
c=a+b
End Sub
2.用Function编写
C=Add(a,b)
Function Add(byval a as double,byval b as double) as double
add=a+b
end function

Sub 多用在一些事件 动作,就是要产生最终结果的那种.
Sub象汇编语言中的操作思维方式,Function是C语言中的典型方式.