比如随机获取20-80范围内的任意数, 但规定获取的数不能重复
我处理这类题目的方法都用 list 控件
相对于数组,list的的项目可以删除,有了这个功能后这类题目就容易多了
示例代码:
Private
Sub
Command1_Click()
Randomize
For i = 20 To 80
List1.AddItem i
Next i
For i = 0 To List1.ListCount - 1
a = Int ( Rnd * (List1.ListCount))
List2.AddItem List1.List(a)
List1.RemoveItem a
Next i
End Sub
Randomize
For i = 20 To 80
List1.AddItem i
Next i
For i = 0 To List1.ListCount - 1
a = Int ( Rnd * (List1.ListCount))
List2.AddItem List1.List(a)
List1.RemoveItem a
Next i
End Sub
先把所需的范围值赋给 list1
然后随机获取到 其中的某项值给 list2 再清除list1的那个项目
循环上面的操作,就能很快获取到list里的所有值了!
这个方法由于不用判断生成的随机数是否已经存在;所以速度上来说是比较快的!