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 です。ここで何か助けていただければ幸いです。

サブの外側でグローバル カウント変数を使用する簡単な修正。

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

0

あなたの事例を読んでいるうちに、1 つのテキスト ボックスから 10 個の異なる数値を配列に追加する必要があることがわかりました。@rcsが言っpriceTB.Clear()たように、最初の繰り返しの後にテキストボックスを空にします。

したがって、あなたの場合はinputboxを使用することをお勧めします。そのループの 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 に答える