0

我以为我了解 for 循环和数组是如何工作的,但是由于某种原因,当我尝试将它们一起使用时,我没有得到我期望的结果。基本上我想创建一个for循环来增加数组的索引,并为数组中的每个元素分配用户输入的数字。在 C++ 中,它看起来像这样:

int array[11];

for(int i=0; i<12; i++)
{
  array[i]=valueEntered;
}

现在我正在尝试在 Visual Basic 中重新创建它。这就是我所拥有的:

Dim gasArray(11) As Decimal

        For i As Integer = 0 To 11 Step 1
            gasArray(i) = Val(priceTB.Text)

            priceLB.Items.Add(Val(priceTB.Text))
            priceTB.Clear()
        Next

但是我的价目表框 (priceLB) 只打印出输入的第一个数字,而数组的其余部分则打印出 0。在这里的任何帮助将不胜感激。

使用 sub 之外的全局计数变量进行简单修复。

Dim gasArray(11) As Decimal

        gasArray(i) = Val(priceTB.Text)
        i += 1
        priceLB.Items.Add(Val(priceTB.Text))
        priceTB.Clear()


        If i > 11 Then
            enterBtn.Enabled = False
            priceTB.Enabled = False
        End If
4

2 回答 2

3

你为什么打电话priceTB.Clear()?我认为这将清除文本框,因此数组的其余部分变为 0。

于 2013-10-23T03:54:26.550 回答
0

在阅读您的案例时,我了解到您需要从一个文本框中将 10 个不同的数字添加到一个数组中。好的,正如@rcs 所说priceTB.Clear(),将在第一次迭代后清空文本框。

所以我建议你在你的情况下使用输入。它将帮助您在该循环的 10 次迭代中获得 10 个不同的值。

Dim gasArray(9) As Decimal

For i As Integer = 0 To gasArray.length - 1          
  gasArray(i) = Val(InputBox("Enter a value", "Hello", String.Empty))
  priceLB.Items.Add(gasArray(i))
Next
于 2013-10-23T07:00:44.903 回答