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.。。。。这样。?
展开
 我来答
网海1书生
科技发烧友

2013-10-20 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部

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
然后去远足
2013-10-20 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2438万
展开全部

确实是每次循环。

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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syx54
2013-10-20 · TA获得超过7379个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2761万
展开全部
你应该补一下知识:
变量的作用域以及变量的生命周期。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leifhl
2013-10-20 · TA获得超过725个赞
知道小有建树答主
回答量:199
采纳率:100%
帮助的人:201万
展开全部
变量a的定义与初始化放在timer1_timere()函数外。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式