ПОНЯТНО О Visual Basic NET (том 2)



              


15.2.1. Основы работы с одномерными массивами - часть 2


Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        Dim dlina() As Integer = {0, 500, 400, 600}

        Dim summa As Integer

        summa = dlina(1) + dlina(2) + dlina(3)

        Debug.WriteLine(summa)

End Sub

Пояснение: В операторе

        Dim dlina() As Integer = {0, 500, 400, 600}

мы в фигурных скобках задаем через запятую значения подряд всем элементам массива, начиная с нулевого (хоть он нам в данной задаче и не нужен). В этом случае значение верхней границы индекса в круглых скобках не указывается. Однако VB подразумевает, глядя на длину списка в фигурных скобках, что вы объявили массив dlina(3).

Пример. Теперь запишем ту же программу в предположении, что длины удавов заранее не известны и мы их вводим при помощи InputBox. Вдобавок определим, правда ли, что первый удав длиннее второго:

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

        Dim dlina(3) As Integer

        dlina(1) = InputBox("Введите длину 1-го удава")

        dlina(2) = InputBox("Введите длину 2-го удава")

        dlina(3) = InputBox("Введите длину 3-го удава")

        Debug.WriteLine (dlina(1) + dlina(2) + dlina(3))

        If dlina(1) > dlina(2)  Then  MsgBox("Правда")  Else  MsgBox("Неправда")

End Sub

Нарушение границы. Раз вы объявили границу индекса, то должны ее придерживаться. Так, неправильно было бы теперь написать dlina(4) = 200. Ведь место в памяти под dlina(4) не отведено. В этом случае при выполнении проекта VB выдаст ошибку:

Index was outside the bounds of the array

что означает:

Индекс вышел за границы массива




Содержание  Назад  Вперед