小弟我用vs2010,vb程序写下面代码为什么不对呢,帮小弟我看下

我用vs2010,vb程序写下面代码为什么不对呢,帮我看下显示十个能被3整除的数这样写不正确,不如结果:Dim bb A

我用vs2010,vb程序写下面代码为什么不对呢,帮我看下
显示十个能被3整除的数 

这样写不正确,不如结果:  
Dim bb As Integer  
Do  
For bb = 1 To 33  
If bb Mod 3 = 0 Then  
ListBox1.Items.Add(CStr(bb))  
End If  
Next bb  
Loop Until ListBox1.Items.Count = 10


这样就对了,用了if就对了,为什么呢。
  Dim bb As Integer
  Do
  For bb = 1 To 33
  If bb Mod 3 = 0 Then
  ListBox1.Items.Add(CStr(bb))
  If ListBox1.Items.Count = 10 Then Exit Do
  End If
  Next bb
  Loop

============

[解决办法]

VB.NET code
Dim bb As Integer   For bb = 1 To 33   If bb Mod 3 = 0 Then   ListBox1.Items.Add(CStr(bb))   End If   Next bb  '一次性此处你添加了(33/3=11) 11个item ,然后再走外层循环的判断条件,'明显判断条件ListBox1.Items.Count = 10已经无法阻止程序的死循环.