在VB中怎么用timer控件控制循环,使每五十毫秒循环体进行一次
如图是我编的程序,老师要求是50毫秒判别一个数字是不是素数并把素数输出我也把timer属性interval改成了50但是一运行所有1000~2000间的素数都输出来了,能...
如图是我编的程序,老师要求是50毫秒判别一个数字是不是素数并把素数输出 我也把timer属性interval改成了50 但是一运行 所有1000~2000间的素数都输出来了,能否告知原因并给出修改意见QAQ
展开
1个回答
展开全部
你在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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询