显示100-200的素数 大侠请进

来源:百度知道 编辑:UC知道 时间:2024/06/08 18:22:37
显示100-200的素数
Dim b As Boolean, i As Long, n As Long
For i = 100 To 200
b = True
For n = 2 To i - 1
If i Mod n = 0 Then
b = False
Exit For
End If
Next n
If b = True Then Print i
Next i
End Sub
我认为整个程序是这样运行的:
当i=100时
b是真的
n=2时
满足if语句 然后b为false
退出循环
后面的if语句也为不满足条件
下一个i
当i=101时
b是真的
n=2时
不满足if语句
下一个n
当n=3时
也不满足if语句
一直到100时也不满足if语句
N的循环结束
满足b为true 输出101
当i=102时
重走100的路

大家觉得我这样分析对吗?
不对,请帮我指出

Private Sub Form_Click()
Dim b As Boolean
Dim i As Long, n As Long
For i = 100 To 200
b = True
For n = 2 To i - 1
If i Mod n = 0 Then
b = False
Exit For
End If
Next
If b Then Print i
Next i
End Sub
运行也是同样的结果
1. 倒数第四行的n不写为什么也可以?
2. 倒数第三行的b后=true不写为什么也可以?
3. 还有我把倒数第八句改成
if I mod n=0 then b=false
exit for

1.可以这么理解。
2。发for ...next组合,都可以不写 next后面的循环数。 写上循环数是为了程序一目了然。
If b Then Print i ,这句本来就是 b为真,所以写不写=true一样。
第八句这样写肯定不成,因为if...else语句,只有执行语句为一句语句时,可以简化为。if ...then 语句,这样省略了 end if。 但因程序本来是
If i Mod n = 0 Then
b = False
Exit For
End If
if 语句里有两句执行语句,所以不能改,改了后就改变了程序的执行顺序。