VB求大神 如图,双重for循环为什么出错,怎么改
需要将判断是否为素数的布尔型赋值,放在第一层循环体内。原因是,如果不放在循环体内,当遇到非素数时,程序会将sushu的值赋值为false,这样的话,在循环体内以后无论是否为素数,sushu的值会一直是false,就不会执行后续的累加过程。所以,程序在i>=4时,sushu的值一直为false。因此累加的过程,实际上只执行了1+2+3=6。
Dim sushu As Boolean
Dim i, j, sum As Integer
sum = 1 + 2
For i = 3 To 100
sushu = True '放在这个位置,始终假设该整数是素数
For j = 2 To i - 1
If i Mod j = 0 Then
sushu = False
Exit For
End If
Next
If sushu=True Then
sum = sum + i
End If
Next