VB菜鸟提问~~~

来源:百度知道 编辑:UC知道 时间:2024/05/16 10:24:45
Function isprime(x As Integer) As Integer
Dim i As Integer
For i = 2 To x - 1
If x Mod i = 0 Then
Exit For
End If
Next i
If i >= x Then
isprime = 1
Else
isprime = 0
End If

End Function
Private Sub Command1_Click()
Dim x As Integer
For x = 100 To 200
If isprime(x) = 1 Then
Print x;
End If
Next x
End Sub

这里I怎么可能会大于x。I的最大值不就是X-1吗?怎么可能会出现那个I>=x呢?

For i = 2 To x - 1 完整的形式是 For i = 2 To x - 1 step 1(默认),循环语句执行的顺序是先i=2,然后执行i+1,再执行循环体,再执行i=i+1(step 1),再判断i是否满足条件2<=i<=x-1,所以在循环结束前,i会再执行默认的step 1语句,然后判断i是否大于x-1,当i=x时循环结束,因此循环结束后的i的值为x

是的

For i = 2 To x - 1
楼主想想,以上这个循环结束的条件是什麼?也就是说当i>x-1的时候才跳出循环!所以在结束循环的时候,变量i的值会比x-1大1,也就是i=x.懂了没?好好想想吧.