vb的timer控件是不断循环吗?为什么这段代码和我想象的不一样。。
privatesubtimer1_timere()dimaa=10a=a-1endsub为什么为此执行a不是10,9,8,7.。。。。这样。?...
private sub timer1_timere()
dim a
a=10
a=a-1
end sub
为什么为此执行a不是10,9,8,7.。。。。这样。? 展开
dim a
a=10
a=a-1
end sub
为什么为此执行a不是10,9,8,7.。。。。这样。? 展开
4个回答
展开全部
Timer1每次循环的时候,你这段代码都会重复运行,也就是说:
第1次循环:a=10 a=a-1=10-1=9
第2次循环:a=10 a=a-1=10-1=9
第3次循环:a=10 a=a-1=10-1=9
......
第n次循环:a=10 a=a-1=10-1=9
也就是说,不管运行多少次,a的值都是9。
要想实现你的目的,必须把变量a设为全局变量或静态变量,这样每次循环时才不会被重新初始化:
静态变量的例子:
Private Sub Timer1_Timer()
Static a '把a声明为静态变量
If IsEmpty(a) Then
a = 10
Else
a = a - 1
End If
End Sub
全局变量的例子:
Dim a '把a声明为全局变量
Private Sub Timer1_Timer()
If IsEmpty(a) Then
a = 10
Else
a = a - 1
End If
End Sub
展开全部
确实是每次循环。
Dim a
a = 10
a = a - 1
每次都循环如上三行代码。
第一行定义一个变量 a。
第二行给 a 赋值为 10。
第三行 a 的值变为 a - 1,也就是 9。
所以 a 始终等于 9。
如果想达到你想要的10、9、8……,应该是:
Dim a
a = 10
Private Sub Timer1_Timer()
a = a - 1
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你应该补一下知识:
变量的作用域以及变量的生命周期。
变量的作用域以及变量的生命周期。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
变量a的定义与初始化放在timer1_timere()函数外。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询