这段代码有什么问题?它以四个一组的形式调用,并且似乎总是只有两种组合:
Public Function GetRand() As String
Randomize()
Dim r As Integer = CInt(Rnd() * 3)
Select Case r
Case 0
Return str1
Case 1
Return str2
Case 2
Return str3
Case 3
Return str4
Case Else
Return str1
End Select
End Function
它返回随机字符串,但似乎是以非随机顺序返回它们?
答案 0 :(得分:1)
问题可能是对Randomize()
的调用。拿出来它应该工作正常。
调用Randomize()
时,您将设置随机数生成器将使用的种子。你应该只调用一次,否则你可能总是以相同的值播种它。
答案 1 :(得分:1)
绝对查看@zawaideh提及的随机对象:
Static R As New Random() 'Static so that it only gets initialized once'
R.Next(0, 4) 'Returns an integer from zero up to but not including 4, so 0,1,2,3'
答案 2 :(得分:0)
如果您使用的是VB.Net,则可以使用.net随机数生成器
Dim random_object As New Random() Console.WriteLine(random_object.Next().ToString())