2014-04-01 3 views
0

배열을 정의하려고하지만 내 정의 문에 값이 할당되기 전에 변수가 사용되고 있다고 표시됩니다. txtNumber2 (ⅰ)의 도움 감사 -변수가 제대로 정의되지 않음

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSolve.Click 
    Dim txtNumber1() As Integer = {Val(Me.txt1Number1.Text), Val(Me.txt2Number1.Text), Val(Me.txt3Number1.Text), Val(Me.txt4Number1.Text), Val(Me.txt5Number1.Text), Val(Me.txt6Number1.Text), Val(Me.txt7Number1.Text), Val(Me.txt8Number1.Text), Val(Me.txt9Number1.Text), Val(Me.txt10Number1.Text), Val(Me.txt11Number1.Text), Val(Me.txt12Number1.Text), Val(Me.txt13Number1.Text), Val(Me.txt14Number1.Text), Val(Me.txt15Number1.Text), Val(Me.txt16Number1.Text), Val(Me.txt17Number1.Text), Val(Me.txt18Number1.Text), Val(Me.txt19Number1.Text), Val(Me.txt20Number1.Text)} 
    Dim txtNumber2() As Integer = {Val(Me.txt1Number2.Text), Val(Me.txt2Number2.Text), Val(Me.txt3Number2.Text), Val(Me.txt4Number2.Text), Val(Me.txt5Number2.Text), Val(Me.txt6Number2.Text), Val(Me.txt7Number2.Text), Val(Me.txt8Number2.Text), Val(Me.txt9Number2.Text), Val(Me.txt10Number2.Text), Val(Me.txt11Number2.Text), Val(Me.txt12Number2.Text), Val(Me.txt13Number2.Text), Val(Me.txt14Number2.Text), Val(Me.txt15Number2.Text), Val(Me.txt16Number2.Text), Val(Me.txt17Number2.Text), Val(Me.txt18Number2.Text), Val(Me.txt19Number2.Text), Val(Me.txt20Number2.Text)} 
    Dim txtAnswer() As Integer = {Val(Me.txt1Answer.Text), Val(Me.txt2Answer.Text), Val(Me.txt3Answer.Text), Val(Me.txt4Answer.Text), Val(Me.txt5Answer.Text), Val(Me.txt6Answer.Text), Val(Me.txt7Answer.Text), Val(Me.txt8Answer.Text), Val(Me.txt9Answer.Text), Val(Me.txt10Answer.Text), Val(Me.txt11Answer.Text), Val(Me.txt12Answer.Text), Val(Me.txt13Answer.Text), Val(Me.txt14Answer.Text), Val(Me.txt15Answer.Text), Val(Me.txt16Answer.Text), Val(Me.txt17Answer.Text), Val(Me.txt18Answer.Text), Val(Me.txt19Answer.Text), Val(Me.txt20Answer.Text)} 
    Dim i As Integer 
    Dim intRealAnswer() As Integer 
    For i = 0 To txtNumber1(i) - 1 
     intRealAnswer(i) = txtNumber1(i) - txtNumber2(i) 
     If txtAnswer(i) = intRealAnswer(i) Then 
      Me.lblAnswer1.Text = "Correct:" & intRealAnswer(i) 
     Else 
      Me.lblAnswer1.Text = "Incorrect:" & intRealAnswer(i) 
     End If 
    Next 
End Sub 

에러 라인 intRealAnswer (I) = txtNumber1 (I)에서 발생한다.

답변

2

: 당신은 지정하지 않은

Dim intRealAnswer() As Integer 

얼마나 많은 항목 배열에 있습니다. 어떤 값을 초기화해야하는 경우 다른 변수와 마찬가지로이 작업을 수행 할 수 있습니다. 이런 식으로 뭔가 :

Dim intRealAnswer() As Integer = {0, 0, 0, 0, ...} 

이 또는 당신이 (9 인덱스 0) 10 개 항목의 배열을 선언하기 위해이 작업을 수행 할 수 있습니다

Dim intRealAnswer(9) As Integer 
0

배열을 초기화하거나 사용하기 전에 크기를 선언해야합니다. 당신이 intRealAnswer을 선언했지만

0

당신의 int 기본값을 제공하려고?

Dim i As Integer = 0 
Dim intRealAnswer() As Integer = {0} 
0
은 당신은 현재 값을 저장하기 때문에 배열을 할 필요가없는 진짜 이유가 없습니다 Dim intRealAnswer As Integer 에 라인 Dim intRealAnswer() As Integer 을 변경

. 또한 참고로 Val()을 제거하고 Integer.Parse()를 사용하고 다른 누군가가 텍스트 상자에 1.5를 넣으면 폼에서 값이 실제로 정수인지 먼저 확인해야합니까? 하나의 텍스트 상자에 1.5를 입력 할 수있는 사용자와 다른 텍스트 상자에 3.0을 입력 할 수있는 입력을받는 것으로 배울 점은 결과에서 십진수를 볼 것으로 예상됩니다.

0

나는 목록 같은 (Interger의)는 IEnumerable 개체, 마녀

Dim txtNumbers as New List(Of Integer) From {Val(Me.txt1Number1.Text), Val(Me.txt2Number1.Text), ...} 

txtNumbers.Add(Val(Me.txt3Number1.Text)) 

를 사용하도록 권 해드립니다 심지어 당신이 할 수있는 하나 그냥 "AddRange"에 의해 "Add"한. 광고 소재는 'For Each Item as Control in Me.Controls'을 사용하여 목록을 만들 수 있습니다.

관련 문제