VB........
我首先问一个比较笨的问题PrivatexAsIntegerDimzAsInteger有什么区别然后我最后算出来的xyz结果分别是60,30,30。所以也不知道哪错了麻烦仔...
我首先问一个比较笨的问题
Private x As Integer Dim z As Integer 有什么区别
然后我最后算出来的xyz结果分别是60,30,30。所以也不知道哪错了
麻烦仔细讲一下过程 谢谢了 展开
Private x As Integer Dim z As Integer 有什么区别
然后我最后算出来的xyz结果分别是60,30,30。所以也不知道哪错了
麻烦仔细讲一下过程 谢谢了 展开
2个回答
展开全部
这道题的初衷就是为了让你了解声明的区别
首先,我们来区分本例中出现的声明类型:
1) Dim:过程级变量,可以在模块中任意位置声明,所声明的变量在该声明所在的过程中有效。如果出现在通用声明段,则在该模块中的所有过程中有效
2) Private:模块级变量,只能出现在模块的通用声明段中,所声明的变量在该模块中有效。
3) Static:静态声明,和dim一样,属于过程级变量,不同之处在于,在过程内使用Static声明的变量在过程结束之后会被保存下来,而Dim声明的变量则不会。
接下来我们解析一下这道题:
首先要注意的是,X变量是在通用声明段中使用 Private 语句声明的,是模块级变量,所以一会儿当过程结束后X变量将会被保存
然后进入过程,你会发现过程内还有两个变量被声明了,他们是Y和Z,其中Y是使用Static声明的,而Z则是使用Dim声明的,根据上面的讲解,Static是静态变量,过程结束后将会被保存,而Dim是过程级变量,过程结束后将失效。
最后,让我们来分步执行上述代码吧。
载入程序时,X被声明为模块级变量。
第一次点击command1按钮之后:
y被声明为静态变量,z被声明为过程级变量
n=10
z=n+z 结果为z=10
y=y+z 结果为y=10
x=x+z 结果为x=10
再次点击command1按钮:
y被声明为静态变量,z被声明为过程级变量
n=10
z=n+z 因为上次过程结束时Z变量失效,本次过程中的Z为再次声明的新变量,所以结果为z=10
y=y+z 因为Y是静态变量,所以上一个过程结束时被保存下来了,所以结果为y=10+10=20
x=x+z 因为X为模块级变量,是储存在过程之外的,所以结果为x=10+10=20
看懂了第二次点击的所执行的过程,那么第三次就简单了,是一样的道理了
n=10
z=n+z 因为上次过程结束时Z变量失效,本次过程中的Z为再次声明的新变量,所以结果为z=10
y=y+z 因为Y是静态变量,所以上一个过程结束时被保存下来了,所以结果为y=20+10=30
x=x+z 因为X为模块级变量,是储存在过程之外的,所以结果为x=20+10=30
所以答案是C。
首先,我们来区分本例中出现的声明类型:
1) Dim:过程级变量,可以在模块中任意位置声明,所声明的变量在该声明所在的过程中有效。如果出现在通用声明段,则在该模块中的所有过程中有效
2) Private:模块级变量,只能出现在模块的通用声明段中,所声明的变量在该模块中有效。
3) Static:静态声明,和dim一样,属于过程级变量,不同之处在于,在过程内使用Static声明的变量在过程结束之后会被保存下来,而Dim声明的变量则不会。
接下来我们解析一下这道题:
首先要注意的是,X变量是在通用声明段中使用 Private 语句声明的,是模块级变量,所以一会儿当过程结束后X变量将会被保存
然后进入过程,你会发现过程内还有两个变量被声明了,他们是Y和Z,其中Y是使用Static声明的,而Z则是使用Dim声明的,根据上面的讲解,Static是静态变量,过程结束后将会被保存,而Dim是过程级变量,过程结束后将失效。
最后,让我们来分步执行上述代码吧。
载入程序时,X被声明为模块级变量。
第一次点击command1按钮之后:
y被声明为静态变量,z被声明为过程级变量
n=10
z=n+z 结果为z=10
y=y+z 结果为y=10
x=x+z 结果为x=10
再次点击command1按钮:
y被声明为静态变量,z被声明为过程级变量
n=10
z=n+z 因为上次过程结束时Z变量失效,本次过程中的Z为再次声明的新变量,所以结果为z=10
y=y+z 因为Y是静态变量,所以上一个过程结束时被保存下来了,所以结果为y=10+10=20
x=x+z 因为X为模块级变量,是储存在过程之外的,所以结果为x=10+10=20
看懂了第二次点击的所执行的过程,那么第三次就简单了,是一样的道理了
n=10
z=n+z 因为上次过程结束时Z变量失效,本次过程中的Z为再次声明的新变量,所以结果为z=10
y=y+z 因为Y是静态变量,所以上一个过程结束时被保存下来了,所以结果为y=20+10=30
x=x+z 因为X为模块级变量,是储存在过程之外的,所以结果为x=20+10=30
所以答案是C。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询