2013-10-23 5 views
0

나는 루프와 배열이 어떻게 작동 하는지를 알았지 만 함께 사용하려고 할 때 어떤 이유로 나는 내가 기대 한 것을 얻지 못하고있다. 기본적으로 배열의 인덱스를 증가시키고 배열의 각 요소에 사용자가 입력 한 번호를 할당하는 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 

답변

3

priceTB.Clear()으로 전화하는 이유는 무엇입니까? 나는이 텍스트 상자를 지우고 배열의 나머지 부분은 0이 될 것이라고 생각합니다.

+0

다음 번호를 입력 할 수 있도록 텍스트 상자를 지워야합니다. IE : element 2, 3, 4, etc. – SkyVar

+0

다음 코드를 입력하기 전에 루프가 12 번 실행되므로 올바른 코딩 방법이 아닙니다. Click 이벤트 (버튼에 추가)에 넣고 루프를 사용하지 않고 변수의 배열에 할당 할 색인을 추적해야하는 이유는 무엇입니까? – rcs

+0

for 루프를 사용하게 된 이유를 모르겠다. 아마 수면 부족. 입력 된 숫자를 제어하기 위해 전역 변수 카운터를 만들었습니다. 도와 주셔서 감사합니다. – SkyVar

0

사례를 읽는 동안 하나의 텍스트 상자에서 배열에 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 
관련 문제