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

如图是我编的程序,老师要求是50毫秒判别一个数字是不是素数并把素数输出 我也把timer属性interval改成了50 但是一运行 所有1000~2000间的素数都输出来了,能否告知原因并给出修改意见QAQ

你在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

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答