请教一个VB计算题,朋友请进

来源:百度知道 编辑:UC知道 时间:2024/05/21 08:22:13
Option Explicit

Private Sub Command1_Click()
Dim a As Integer, b As Integer, z As Integer
a = 1: b = 1: z = 1
Call P1(a, b)
Print a, b, z
Call P1(b, a)
Print a, b, z

End Sub
Private Sub P1(x As Integer, ByVal y As Integer)
Static z As Integer
x = x + z: y = x - z: z = x + y

Print x, y, z

End Sub
这里面有三个print,为什么会输出四行?分别为
112
111
314
131
这些结果是如何算出来的,请指教,在线等
我知道为什么会是四个,但是Sub1里的x和y并没有用static定义为什么进入下一次运算时还要以上一次的值为基础?

Call P1(a, b)
Print a, b, z
Call P1(b, a)
Print a, b, z
每个语句打印一次 因此有4行

程序运行不会出错吗?

你本身有2个直接调用print的,还有你调用了2个P1函数,这个函数中也有1个print所以输出4个

Call P1(a, b) 中有print啊
看下面的
Private Sub P1(x As Integer, ByVal y As Integer)
Static z As Integer
x = x + z: y = x - z: z = x + y
Print x, y, z ........................此处有print语句
End Sub