问大家一个VB习题~

来源:百度知道 编辑:UC知道 时间:2024/06/05 10:48:48
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
问,连续三次单击后,三个表签显示的内容

就是这个题目了~
但是说我这一类题目都不是很明白,所以希望解答的那位高手也能把分析过程一起写上,简洁易懂就够,谢谢了~
等等还有一个~也同样需要详细的步骤和分析过程哦,麻烦各位了~
Private sub command1_Click
x=5:y=3
Call Proc(x,y)
Label1.Caption=x
Label2.Caption=y
End sub
Private sub proc(ByVal a as integer,ByVal b as integer)
x=a*a
y=b+b
End sub
求显示出的x,y的值

x=10,y=30,z=10

x 未定义初始值=0,y,静态初始0,z动态初始0
第一次单击后:
n=10
z=n+z =10
y=y+z =10
x=x+z =10
第二次单击:
n=10
z=n+z =10
y=y+z =20
x=x+z =10
第三次:
n=10
z=n+z =10
y=y+z =30
x=x+z =10

第一题,主要知识点在
Static y as integer
这个static 定义了Y为过程及变量,在这个过程中,它能进行保留,
而DIM与未加定义的变量,在离开这个过程后就不能进行保留了,
所以X,Z在三次点击中,都只能得到N的值,而Y可以进行累加.

第二题
Private sub command1_Click '按钮事件发生后
x=5:y=3 '为X,Y赋值
Call Proc(x,y) '然后就运行过程名为PROC的过程
'那件事做完后,就在下面的标签上显示相应的X与Y值
Label1.Caption=x
Label2.Caption=y
End sub

Private sub proc(ByVal a as integer,ByVal b as integer) '过程定义
x=a*a 'a就是传递过来的x,b就是上面传递过来的y
y=b+b
'在这时X与Y都是过程PROC的内部变量,他们的变动不会作用到按钮事件中的X与Y值
End sub

这个例子的主要知识点,一\过程 二\变量作用域