一道简单的vb编程结果

来源:百度知道 编辑:UC知道 时间:2024/06/28 15:59:12
Private x As Integer
窗体上有一个command1和label1,label2,label3,
Private Sub Command1_Click()
Static y As Integer
Dim z As Integer
n = 10
z = n + z
y = y + z
x = x + z
Label1.Caption = x
Label2.Caption = y
Label3.Caption = z
End Sub
单机按钮3次,3个标签中的内容以及理由。
谢谢

30,30,10
这题考察变量的作用域

x定义在过程外,是窗体级变量,每次点击之后保存了值
y是静态变量,也保存了值
z定义在过程中,每次都是0
==========
第一次,
z=10
y=10
x=10
--
第二次
z=10
y=y+10=20
x=x+10=20
--
第三次
z=10
y=y+10=30
x=x+10=30

自己放进VB看看

x = 10
y = 30
z = 10

理由:
static 关键字为声明静态变量,即在此过程结束后还在内在中保存它所声明的变量的值。
而由关键字DIM 声明的变量为动态的,在过程结束后就会把该变量从内在中去掉,再次调用时重置。

现在,我们看三次Click()事件发生的过程:

第一次,X、Y、Z的初始值均为0。当进行加法运算后,Z=10,Y=10,X=10;
第二次,X、Z被重置为0,Y仍保留原值为10。进行加法运算后,Z=10,Y=20,X=10;
第二次,X、Z被重置为0,Y仍保留原值为20。进行加法运算后,Z=10,Y=30,X=10。

您可以看懂吗?

第一次:Label1:10 Label2:10 Label3:10
第二次:Label1:10 Label2:20 Label3:10
第三次:Label1:10 Label2:30 Label3:10

由于变量y被设置为static静态变量了,所以只有y可以垒加
其他变量在触发事件时相当于重新设置变量,变量从初始状态算。