我正在嘗試編寫角色扮演Dice子程序。我在Visual Basic中使用Visual Studio 2010編寫。根據Visual Studio的所有語法都是正確的。該表格如下所示:我該如何解決「索引超出數組邊界」並將值寫入數組
當您單擊骰子文本框的數值爲「1」或「null」的數字按鈕時,它將滾動一個骰子並給予一個隨機值,具體取決於哪個數字按鈕你點擊。如果你輸入一個2或更大的值,那麼程序停止並給我以下異常錯誤。
我已經做了研究,並認爲代碼被寫入正確,但由於某種原因值沒有進入數組。想知道如何使值進入數組,並讓程序識別出多個骰子正在滾動。以下是其中一個按鈕的代碼副本。
Private Sub btnD4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnD4.Click
Dim v, w, x, y, z, iarry(x) As Integer
lvRolls.Items.Clear()
If txt4Qty.Text = vbNullString Then
x = 1
Else
x = CInt(txt4Qty.Text)
End If
If x = 1 Then
z = CInt(Int(Rnd() * 5))
If z > 4 Then
z = 4
ElseIf z < 1 Then
z = 1
End If
lvRolls.Items.Add("Roll 1")
lvRolls.Items(0).SubItems.Add(CStr(z))
If txt4Mod.Text = vbNullString Then
lblTotal.Text = CStr(z)
Else
w = CInt(txt4Mod.Text)
lblTotal.Text = CStr(z + w)
End If
Else
For y = 0 To x Step 1
z = CInt(Int(Rnd() * 5))
If z > 4 Then
z = 4
ElseIf z < 1 Then
z = 1
End If
iarry(y) = z
Next
For v = 0 To x
lvRolls.Items.Add("Roll " & v + 1)
lvRolls.Items(x).SubItems.Add(CStr(iarry(y)))
Next
End If
End Sub
雖然不熟悉vb.net,但我的猜測是你沒有以正確的方式初始化iarray。 Dim v,w,x,y,z,iarry(x)As Integer' x可能爲零,因此數組的長度也應該爲零。因爲你訪問該數組的唯一部分是當'x!= 1'應該是它。 – 2012-08-11 08:43:07