Vbscript 随机数类型脚本不断给出相同的结果

Vbscript 随机数类型脚本不断给出相同的结果,vbscript,Vbscript,我不知道我在哪里犯了错误。为一个风险风格的论坛游戏制作脚本,一直不起作用 intHighNumber = 10000 intLowNumber = 1 intNumbers = 1 For i = 1 To intNumbers Randomize intNumber = Int((intHighNumber - intLowNumber + 1) * Rnd + intLowNumber) strnum = strnum& " " & C

我不知道我在哪里犯了错误。为一个风险风格的论坛游戏制作脚本,一直不起作用

intHighNumber = 10000

intLowNumber = 1

intNumbers = 1

For i = 1 To intNumbers

    Randomize

    intNumber = Int((intHighNumber - intLowNumber + 1) * Rnd + intLowNumber)

    strnum = strnum& "   " & CStr(intNumber)

Next
If strnum=0000 Or 1111 Or 2222 Or 3333 Or 4444 Or 5555 Or 6666 Or 7777 Or 8888 Or 9999 Or 1234 Or 2345 Or 3456 Or 4567 Or 5678 Or 6789 Then
x = MsgBox(100)
ElseIf strnum=123 Or 234 Or 345 Or 456 Or 567 Or 678 Or 789 Or 1123 Or 1345 Or 1456 Or 1567 Or 1678 Or 1789 Or 2123 Or 2234 Or 2456 Or 2567 Or 2678 Or 2789 Or 3123 Or 3234 Or 3345 Or 3567 Or 3678 Or 3789 Or 4123 Or 4234 Or 4345 Or 4456 Or 4678 Or 4789 Or 5123 Or 5234 Or 5345 Or 5456 Or 5567 Or 5789 Or 6123 Or 6234 Or 6345 Or 6456 Or 6567 Or 6678 Or 7123 Or 7234 Or 7345 Or 7456 Or 7567 Or 7678 Or 7789 Or 8123 Or 8234 Or 8345 Or 8456 Or 8567 Or 8678 Or 8789 Or 9123 Or 9234 Or 9345 Or 9456 Or 9567 Or 9678 Or 9789 Then
x = MsgBox(50)
Else 
x = MsgBox(3)
End If

假设您已经声明了(dim)变量,我仍然看到一些问题:

strnum&应该是strnum&

但最重要的是,我看不出“if”语句是如何工作的,因为您正在将字符串变量与整数值列表进行比较,并且字符串变量有多个(根据玩家数量)数字块


我无法重现“expected then”错误,但我相信您需要重写“If”语句。

您的
If
错误;看看我对你的另一个/同样的问题的回答。此外:连接循环中的数字,并在循环后将单个数字与字符串进行比较是无意义的

if语句中的表达式可能不是您想要的。应该是这样的

If (strnum=0) Or (strnum=1111) Or (strnum=2222) ... Then
您应该注意switch语句:

Select Case strOption
  Case 0, 1111, 2222, 3333, 4444, 5555, 6666, 7777, 8888, 9999, 1234, 2345, 3456, 4567, 5678, 6789
    MsgBox(100)
  Case 123, 234, 345, 456, 567, 678, 789, 1123, 1345, 1456, 1567, 1678, 1789, 2123, 2234, 2456, 2567, 2678, 2789, 3123, 3234, 3345, 3567, 3678, 3789, 4123, 4234, 4345, 4456, 4678, 4789, 5123, 5234, 5345, 5456, 5567, 5789, 6123, 6234, 6345, 6456, 6567, 6678, 7123, 7234, 7345, 7456, 7567, 7678, 7789, 8123, 8234, 8345, 8456, 8567, 8678, 8789, 9123, 9234, 9345, 9456, 9567, 9678, 9789
    MsgBox(50)
  Case Else
    MsgBox(3)
End Select
这仍然是相当丑陋和无法维护的


这不是你问题的一部分,但你可能想看看更现代的语言,比如vb.net(因为你喜欢vb)或Python。为什么vbscript根本就不好玩,因为您这样做似乎是为了好玩。

它以前给我一个期望值,但我每次都得到相同的数字(100)。我可能会让它重复定义x并将其写入.txt中的次数。还有,我不知道这件事。谢谢您将收到相同的消息框,因为您的“IF”语句也不可能像您希望的那样工作。请参阅此处的其他文章,您正在将字符串值与整数值进行比较。如果您的“if”语句有效,最有可能的情况是获取msgbox(3)。如果你刚刚开始学习一门语言,我会参考其他一些海报的建议,学习一门更现代的语言。Net、c#Net、python等等。不仅你可能会得到更多的帮助,你获得的知识对你来说更是一种资产。