Visual Basic:索引是数组的外部边界

时间:2012-10-18 15:55:38

标签: arrays vb.net visual-studio-2010

我正在尝试使用此Visual Basic程序将值存储在多维数组中。由于索引在数组的边界之外,我看到的所有其他错误都是由于数组在变量之前声明的事实,但我很确定我在正确的位置声明了我的错误。任何人都可以看到什么是错的?

    Randomize()
    Dim roll As Integer = 0
    Dim player As Integer
    Dim index As Integer

        Console.Writeline("Enter the number of players: ")
        index = Convert.ToInt32(Console.Readline)

        player = index - 1


        Dim players(player,roll) As Integer

        Do Until index = 0

            Do Until roll = 5
                players(player,roll) = CInt(Int((6 * Rnd()) + 1))
                roll +=1
            Loop

            player -=1

        Loop

2 个答案:

答案 0 :(得分:3)

您使用players()标注roll=0,但随后循环到roll=5。这显然超出了数组的范围。

答案 1 :(得分:1)

我添加了一个新变量 - 尝试将代码更改为:

Dim MaxRolls as integer
MaxRolls = 5

然后:

Dim players(player,MaxRolls) As Integer 

那应该解决它