首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

谢绝使用Goto语句,请求大妈解决。解决办法

2012-04-01 
谢绝使用Goto语句,请求大妈解决。谢绝使用Goto语句,请求高人指点迷津!欢迎光临,但是请不要改的面目全非。。

谢绝使用Goto语句,请求大妈解决。
'谢绝使用Goto语句,请求高人指点迷津!

'欢迎光临,但是请不要改的面目全非。。

VB code
Private Sub Test()  Dim k&, i&, N&  ColumnAddr% = 0  N = InputBox("请输入查找质数的范围", "输入大于二的整数")  MsgBox "这种算法求质数较慢,请稍后...", , "提示"  For k = 2 To N Step 1    For i = 2 To Fix(Sqr(k))      If k Mod i = 0 Then         GoTo 10        'Next i                 '此处怎么使得Next i  生效,Without using "Goto"      End If    Next i    Form1.Print k,    ColumnAddr = ColumnAddr + 1    If ColumnAddr = 4 Then ColumnAddr = 0:    Form1.Print10:  Next kEnd Sub


[解决办法]
'网上找了稍改了一下
Private Sub Test()
Dim k&, j&, N&
Dim i As Boolean
ColumnAddr% = 0
N = InputBox("请输入查找质数的范围", "输入大于二的整数")
MsgBox "这种算法求质数较慢,请稍后...", , "提示"

For k = 2 To N
i = True
For j = 2 To k / 2
If k Mod j = 0 Then i = False
Next j
If i = True Then Print k
Next k

ColumnAddr = ColumnAddr + 1
If ColumnAddr = 4 Then ColumnAddr = 0: Form1.Print
End Sub
[解决办法]
不用 Goto 非常容易。
VB code
Private Sub Test()  Dim k&, i&, N&  ColumnAddr% = 0  N = InputBox("请输入查找质数的范围", "输入大于二的整数")  MsgBox "这种算法求质数较慢,请稍后...", , "提示"  For k = 2 To N    Do      For i = 2 To Fix(Sqr(k))        'If k Mod i = 0 Then        '   GoTo 10        '  'Next i                 '此处怎么使得Next i  生效,Without using "Goto"        'End If        ' 应该是使 Next k 生效吧!        If (k Mod i = 0) Then Exit Do      Next      Form1.Print k,      ColumnAddr = ColumnAddr + 1      If ColumnAddr = 4 Then ColumnAddr = 0:    Form1.Print    Loop While (False)'10:  NextEnd Sub
[解决办法]
VB code
Private Sub Test()  Dim zs 

热点排行