试图从数组中获取最小数字总是返回“0”

时间:2013-11-30 05:05:56

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

我正在用VB 2010 express编写一个骰子滚动程序,可以滚动许多不同类型的骰子,每种类型最多15个。我目前有4个选项用于该计划。选择骰子数量,选择骰子上的边数,仅选择最高骰子并选择最低骰子。除了“使用最低模具”代码之外,一切似乎都按预期工作。如果有人能指出我正确的方向或给我一个如何做得更好的例子。在此先感谢您的任何帮助

    Dim DiceArray(frmRoller.cmbNumberofdice.Text) As Long
    Dim iTemp As Integer
    Dim i As Integer
    Dim numofDice As Integer
    Dim CountArrayHigh(100) As Integer
    Dim CountArrayLow(100) As Integer
    numofDice = frmRoller.cmbNumberofdice.Text

    Select Case frmRoller.cmbChooseDie.Text
        Case "D4"
            For i = 1 To numofDice
                iTemp = D4()
                DiceArray(i) = iTemp
                If iTemp > CountArrayHigh(0) Then CountArrayHigh(0) = iTemp
                If iTemp < CountArrayLow(0) Then CountArrayLow(0) = iTemp

            Next i

            highDie = CountArrayHigh(0)
            lowDie = CountArrayLow(0)

1 个答案:

答案 0 :(得分:1)

在VB.NET中,数组基于零。因此,除了不筛选用户的输入之外,声明像Dim DiceArray(frmRoller.cmbNumberofdice.Text) As Long这样的数组实际上是创建一个比所需大的元素的数组。我们需要更多的代码来确定,但我会说你忘记了零元素。 Long也似乎有点矫枉过正......它可以持有-9,223,372,036,854,775,808到9,223,372,036,854,775,807。