VB题,求大神给个解析,尤其是static那一部分
2个回答
展开全部
'第一行是:X=4 第二行是:26 第三行是:15 15
Private Sub Command1_Click()
Dim X As Integer, Y As Integer, S As Integer
X = 12: Y = 18
If X > Y Then
S = Fun(X, Y, 1)
Else
S = Fun(Y, X, 1)
End If
Print S '打印S值为:26
Print X, Y '打印X,Y值为:15 15
End Sub
'由于函数参数没有使用byval,所以是传地址方式传递参数,会使用参数内容变更会反过来影响原参数值.
Private Function Fun(A As Integer, B As Integer, K As Integer)
Static X As Integer '静态变量, 会保留上次的值
X = X + K
If A <= B Then
Fun = A + B - X '第四次执行时A=15,B=15,X=4,所以Fun=26
Print "X="; X '打印内容:X=4
'由于采用传址方式,所以Y=A=15,X=B=15
Else
A = A - X
B = B + X
Fun = Fun(A, B, X)
'第一次A=18,B=12,X=1,第二次A=17,B=13,X=2,第三次A=15,B=15,X=4.
End If
X = 0
End Function
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询