Assigning Values to an Array

This lesson is part of an ongoing tutorial. This first part is here: What is an Array?

There are a number of way you can put data into each position of an array. The code we just wrote for the two buttons had known values stored into each position. We knew we that we wanted the numbers 1 to 5 to be stored into our Integer array, and we knew that we wanted the text "This is a String Array" stored into our String array.

But you don't have to know what the values are. You can assign values straight from a Textbox into the position of your array. Like this:

MyNumbers(0) = Val(Textbox1.Text)
MyNumbers(1) = Val(Textbox2.Text)
etc

With that code, whatever you typed into the Textboxes on your Form would be stored into the positions of your array. The same would be true of a String Array:

MyNumbers(0) = Textbox1.Text
MyNumbers(1) = Textbox2.Text
etc

But do we have to keep typing out a value for each and every position of our array. What if we had an array with a hundred items in it, MyText(99)? Would we have to type out text for all one hundred positions of the array?

Well, obviously not. You can use code to assign values to your array. Here is an example where we don't type out values for all positions of an array. It's the times table again. This time we'll use an array. And we'll write a line of code to assign values to each position of the array.

  • First, add another Button to your form.
  • Set the Text Property to "Times TableArray"
  • Add a Textbox to your Form
  • Set the Text Property to a blank string (in other words, delete Textbox1 from the Text property)
  • Add a Label near the Textbox
  • Set the Text property of the Label to "Which Times Table do you want?"
  • Now double click your new button to get at the code window. Add the following code:

Dim numbers(10) As Integer
Dim times As Integer
Dim StoreAnswer As Integer
Dim i As Integer

ListBox1.Items.Clear()

times = Val(TextBox1.Text)

For i = 1 To 10

StoreAnswer = i * times

numbers(i) = StoreAnswer
ListBox1.Items.Add(times & " times " & i & " = " & numbers(i))

Next i

Run the programme. Enter a number in your new text box, and then click the Times Table Array button. The times table for the number should have been printed.

 

 

At the top of the code we set up three normal Integer variables, i, times and StoreAnswer. (We didn't really need the StoreAnswer variable, but it is here to make the code more readable.) We also set up an array. (Notice that we set it to 10. This actually gives us 11 positions in the array. But we're only putting something in positions 1 to 10. This is because it is more convenient for us, and for our Loop.)

Dim numbers(10) As Integer

We need to know what number we are going to be multiplying by, which times table we're working out. We get this number from the Textbox, and can assign it directly to the variable times

times = Val(Textbox1.Text)

We can then set up a For Loop. Inside the For Loop is where we'll assign values to each position of our array:

numbers(i) = StoreAnswer

First time around the loop, the variable i will hold a value of 1. So the second position of our array, numbers(1) will be assigned whatever is in the variable StoreAnswer

The second time around the loop, the variable i will hold a value of 2. So the second position of our array, numbers(2), will again be assigned whatever is in the variable StoreAnswer

We go round and round the loop assigning values to all ten positions of our array.

The other two lines of code inside the array just work out the times tables, and Adds the answer to the List Box. Study them, and make sure you understand how they work.

But the point of this is to demonstrate that you can use code to assign a value to a position in an array.

 

In the next part, we'll take a look at situations where you don't know how many items will be in an array.

Buy our VB NET Book Here