在VB中怎么用timer控件控制循环,使每五十毫秒循环体进行一次

如图是我编的程序,老师要求是50毫秒判别一个数字是不是素数并把素数输出我也把timer属性interval改成了50但是一运行所有1000~2000间的素数都输出来了,能... 如图是我编的程序,老师要求是50毫秒判别一个数字是不是素数并把素数输出 我也把timer属性interval改成了50 但是一运行 所有1000~2000间的素数都输出来了,能否告知原因并给出修改意见QAQ 展开
 我来答
网海1书生
科技发烧友

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

向TA提问 私信TA
展开全部

你在Timer中把所有素数一次性全部算出来,当然就是这样的结果啦,应该一次只算一个嘛!

Private Sub Timer1_Timer()
Static k As Integer
Dim i As Integer
If k = 0 Then k = 1000
For i = 2 To Int(Sqr(k))
    If n Mod i = 0 Then Exit For
Next
If i > Int(Sqr(k)) Then Text1.Text = Text1.Text & k & " "
PB1.Value = k
k = k + 1
If k = 2000 Then
    Timer1.Enabled = False
    MsgBox "完成计算", vbInformation
    Command1.Caption = "开始"
    Text1.Text = ""
End If
End Sub
追问
是说不要那个DO LOOP 语句吗
追答
不止这个,还要把记录1000到2000的那个变量设为静态变量(或全局变量),否则的话每次Timer运行,变量都会自动变为0
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式