求一道VB程序解答

来源:百度知道 编辑:UC知道 时间:2024/06/14 17:50:43
这道程序题是长这样子的

Private Sub Command1_Click()
Dim a As Integer
a = 2
For i = 1 To 3
Print f(a)
Next i
End Sub

Private Function f(a As Integer)
b = 0
Static c
b = b + 1
c = c + 1
f = a + b + c
End Function

——————————————————————————————————————
我运行之后的答案是4,5,6 但是对这道题真的不明白是怎么回事啊,特别是从“Private Function f(a As Integer)”开始的这后面这段,还有上一段的i 我也不懂是做什么用的,跪求高手给个提点,最好最好最好是可以帮忙按步给注释下,感激不尽~!
啊...两位大人都答得相当清楚,这就很困扰了,呵呵,分给速度比较快的这位吧,二楼的那位辛苦你了,也答得很是明了呢`

Private Sub Command1_Click()
Dim a As Integer
a = 2
For i = 1 To 3 '循环3次
Print f(a) '调用函数f,并输出返回值
Next i '循环结束
End Sub

Private Function f(a As Integer)
b = 0
Static c '静态变量初始值0
b = b + 1
c = c + 1
f = a + b + c '第一次进循环a=2,b=1,c=1所以返回4,第二次进循环a=2,b=1,c=2(因为c是静态变量,没有重新初始化,所以取第一次循环的值:c = 1+1)所以返回5,第三次循环a=2,b=1,c=3所以返回6
End Function

Private Sub Command1_Click()
Dim a As Integer '定义动态变量
a = 2 '赋值 2
For i = 1 To 3 '循环3 次
Print f(a) '调用 函数 f 三次,打印 返回值
Next i
End Sub

Private Function f(a As Integer)
b = 0 '局部变量赋值 0
Static c '定义局部静态变量
b = b + 1
c = c + 1
f = a + b + c '函数返回值 是 a + b + c
End Function

三次调用,每次 参数 a 传入值 都是 2

第一次调用
b = b + 1 0 + 1
c = c + 1 0 + 1'c是静态变量,所以 1 被保留
f = a + b + c 2 + 1 + 1