关于VB中变量的问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 02:55:46
Option Explicit
Public x As Integer, y As Integer
Dim z As Integer

Private Sub Command1_Click()
x = 12: y = 21: z = x + y
Print x, y, z
End Sub

Private Sub Command2_Click()
Dim x As Integer, y As Integer
z = z + x + y
Print x, y, z
End Sub

请问Command2_Click中的print的Z的值是多少?为什么?谢谢

如果Command1_Click() 执行过后再执行Command2_Click()
z=33
因为z,x,y都全局变量,所以在执行Command1_Click()时后
x=12,y=21,z=33
再执行Command2_Click() 时
再Command2_Click() 中定义局部变量Dim x As Integer, y As Integer 此时局部变量>全局变量,而且没用给x,y赋值,所以x=0,y=0,z=z+x+y,既z=z+0+0=z=33,

没有执行过Command1_Click() 执行过就执行Command2_Click()
x=0,y=0,z=z+x+y=0

如果没单击 Command1 直接单击 Command2
z 就是 0

如果单击 Command1 一次,再单击 Command2
z 就是 33

Private Sub Command1_Click()
x = 12: y = 21: z = x + y
Print x, y, z
End Sub
这里的x,y是全局变量,z是窗体变量

Private Sub Command2_Click()
Dim x As Integer, y As Integer
z = z + x + y
Print x, y, z
End Sub
这里的x,y是过程中的局部变量,z是窗体变量