关于VB程序

来源:百度知道 编辑:UC知道 时间:2024/09/23 16:27:01
下面这个程序看不怎么明白,求大虾帮忙!!

Private Sub Form_Click()
Dim i As Integer
Dim isum As Integer
For i = 1 To 5
isum = sum(i)
Next i
Print "isum="; isum
End Sub
Private Function sum(n As Integer)
Static j As Integer
j = j + n
n = n + 2
sum = j
End Function

Private Sub Form_Click()
Dim i As Integer
Dim isum As Integer
For i = 1 To 5
isum = sum(i) '给isum赋值,调用sum函数
Next i
Print "isum="; isum
End Sub
Private Function sum(n As Integer)
Static j As Integer '定义静态变量,值是一直存在的
j = j + n
n = n + 2
sum = j
End Function

For i = 1 To 5
isum = sum(i)
Next i
在sum(i)中,j值一直在累加.
n就是i的值,而且是按地址传递的,在子函数里改变了n的值,i的值也会改变了.
第一次循环,i=1,sum(i),这时n=1,j=j+n=0+1=1,n=n+2=1+2=3,sum=j=1,就是函数返回的值是1.而此时的i已经变成3了,在执行next i语句,i=i+1=4
第二次循环时,sum(i)就是sum(4)了.n=4,j=j+n=1+4=5,n=n+2=4+2=6,sum=j=5.此时i已经是6了,在执行next语句,i就是7了,大于循环的终值5,退出循环.isum的值就是5了.
这就是第一次运行的结果.
由于j值是静态的,在程序运行期间是一直保留了最后的值,所以第二次点击后出来的是10,第三次是15,等等...

Dim j As Integer

Private Sub Form_Click()
Dim i As Integer
Dim isum As Integer
For i = 1 To 5
isum = sum(i)
Next i
Print "isum="; isum
End Sub

Priva