我运行此代码并出现错误: 收集被修改;枚举操作可能不会执行。 它还突出了这一行:
Next
以下是代码:
Dim Maxnum As Integer = 100
Dim PrimeList As New Generic.List(Of Integer)
PrimeList.Add(2)
For Prime As Integer = 3 To Maxnum Step 1
For Each element As String In PrimeList
If Prime Mod element = 0 Then
Else
PrimeList.Add(Prime)
End If
Next
Next
有人愿意帮助我吗?
非常感谢!
答案 0 :(得分:0)
如果你搜索,你会发现其他检查素数的方法,但如果你只想找到2到100之间的素数,你的方法就可以了。
如果要循环遍历PrimeList中的所有元素,则需要避免在循环内更新Primelist。在任何情况下,在检查所有可能的除数之前,您无法确定数字是否为素数。
以下代码使用id
来跟踪是否找到任何除数。
Boolean
答案 1 :(得分:-1)
正如错误所述,您正在迭代它时修改集合。当您调用PrimeList.Add(Prime)时,它会向集合中添加另一个项目,从而更改长度。
For Each element As String In PrimeList
If Prime Mod element = 0 Then
Else
PrimeList.Add(Prime)
End If
Next