Инструкция множественного выбора Select Case.

Еще одной инструкцией VB, предназначенной для программирования разветвлений,

является Select Case (выбрать в случае), которая позволяет выполнить одну из

нескольких групп операторов в зависимости от значения некоторого выражения.

Инструкция Select Case имеет следующий синтаксис:

Select Case Проверочное_выражение

[Case Значение1

[Инструкции1]]

[Case Значение2

[Инструкции2]]

[Case Else

[ИнструкцииЗ]]

End Select

Пример:

Select Case V

Case 1

MsgBox("Равно 1")

Case 2, 3

MsgBox("Равно 2 или 3") Case 4 То 6

MsgBox("Больше или равно 4 и меньше или равно 6")

Case Is >= 9

MsgBox("Больше или равно 9")

Case Else

MsgBox("Ни одно из предшествующих")

End Select

В качестве значения для блока Case можно указывать не только одно значение (4), но и

несколько, разделенных запятой (2, 3). Можно определять также области сравнения

(4 То 6) или воспользоваться относительным сравнением (Is >= 9). Вместо

непосредственного значения проверочного выражения можно использовать ключевое

слово Is.

Блок Case Else выполняется, если ни одно из предыдущих условий не является

истинным.

Если условию Select Case соответствует несколько блоков Case, то выполняется

первый из них.

13) Инструкция цикла For … Next.

Этот цикл управляется параметром, который при повторении выполнения тела цикла

изменяет с заданным шагом свое значение от заданного начального значения до заданного

конечного значения. Такой цикл используют в случае, когда заранее известно, сколько

необходимо совершить повторений выполнения тела.

Синтаксис цикла:

For ИПЦ = НЗПЦ To КЗПЦ [Step ШИПЦ]

Тело цикла (одна или несколько инструкций)

Next [ИПЦ]

Слова For (для), To (до), Step (шаг), Next (затем) являются зарезервированными.

Применены обозначения:

ИПЦ – имя параметра цикла (переменная любого числового типа);

НЗПЦ – начальное значение параметра цикла (выражение любого числового типа),

которое параметр цикла будет иметь при первом выполнении тела цикла;

КЗПЦ – конечное значение параметра цикла (выражение любого числового типа), с

которым сравнивается текущее значение параметра цикла;

ШИПЦ – шаг изменения параметра цикла (выражение любого числового типа) –

необязательная часть инструкции цикла.

Числовые значения НЗПЦ и КЗПЦ задают интервал, в котором будет изменяться параметр

цикла. Необязательный параметр ШИПЦ задает шаг изменения параметра цикла на каждом

проходе. По умолчанию, если он отсутствует, то принимается равным 1. Наконец, после

инструкций, составляющих тело цикла, следует команда Next, обозначающая границу

действия цикла. В случае вложенных циклов (в тело цикла входит инструкция цикла)

полезно указывать, к какому из них относится команда Next. Это достигается

добавлением после слова Next имени параметра цикла.

14) Инструкция цикла Do While … Loop и Do … Loop While.

Здесь While (пока) и Loop (цикл) зарезервированные слова. Циклы типа While

предназначены для ситуаций, когда количество повторений тела цикла (итераций) заранее

не известно.

Вот синтаксис первой из двух разновидностей цикла While:

Do While УсловиеПовторения

Группа инструкций

Loop

Синтаксис второй из двух разновидностей цикла While:

Do

Группа инструкций

Loop While УсловиеПовторения

Различие между ними заключается в том, что УсловиеПовторения (условие

повторения выполнения тела цикла) проверяется в первом случае до выполнения тела

цикла (цикл – пока), а во втором случае – после выполнения тела цикла (цикл – до).

Рассмотрим действие следующего участка программы:

Счетчик = 0

Номер = 20

Do While Номер > 10

Номер = Номер - 1

Счетчик = Счетчик + 1

Loop

MsgBox ("Выполнено " & Счетчик & " итераций цикла.")

При выполнении этого участка программы в окне функции MsgBox будет

выведено:

Выполнено 10 итераций цикла.

В этой программе условие проверяется до входа в цикл. Если переменной Номер

задать значение, равное 9 вместо 20, инструкции внутри цикла выполняться не будут.

В следующей программе инструкции внутри цикла выполняются только один раз

до того, как условие не будет выполнено:

Счетчик = 0

Номер = 9

Do

Номер = Номер - 1

Счетчик = Счетчик + 1

Loop While Номер > 10

MsgBox ("В цикле выполнено " & Счетчик & " итераций.")

Инструкцию Do...Loop можно завершить досрочно с помощью инструкции Exit Do.

15)Инструкция цикла Do Until … Loop и Do … Loop Until.

Until (до) – зарезервированное слово. По своей логике цикл Until подобен циклу

While с той лишь разницей, что выполнение условия означает необходимость выхода из

цикла. Как и в случае цикла While, проверка условия выхода в цикле Until может

осуществляться перед очередным проходом или после него. Вот синтаксис этих двух

вариантов:

Do Until УсловиеВыхода

Группа инструкций

Loop

Do

Группа инструкций

Loop Until УсловиеВыхода

Рассмотрим действие участка программы:

Счетчик = 0

Номер = 20

Do Until Номер = 10

Номер = Номер - 1

Счетчик = Счетчик + 1

Loop

Переменная Счетчик получит значение 10.

Еще один пример:

Счетчик = 0

Номер = 1

Do

Номер = Номер + 1

Счетчик = Счетчик + 1

Loop Until Номер = 10

Переменная Счетчик получит значение 9.

Инструкцию Do...Loop можно завершить досрочно с помощью инструкции Exit Do.

Массивы.

Массив - это группа переменных, содержащих элементы данных одного типа и с

одним именем. Под каждый элемент массива отводится отдельная ячейка. Все элементы

массива имеют один и тот же тип. Возможны ссылки на отдельные элементы массива.

Каждый отдельный элемент массива определяется именем массива и значениями

индексов. Например, ссылки a(7) или a1(2, 9) означают, что:

а – это имя одномерного массива (вектора) с одним индексом, элемент массива имеет

значение индекса равное 7;

а1- это имя двумерного массива (матрицы). Об этом говорит применение двух индексов

для определения элемента массива.

Первый индекс трактуется как номер строки, в которой находится элемент массива, а второй индекс, как номер столбца.

Индексом может быть выражение целого типа с неотрицательным значением.

Нижняя граница индекса всегда равна 0.

Верхняя граница каждого индекса массива

задается при его объявлении.

Как и простые переменные, массивы объявляются с помощью инструкций Dim,

Static, Private или Public.

Примеры объявления массивов:

Dim x() As Single

Dim y(,) As Single

Здесь объявлен одномерный массив с именем x и двумерный массив y. Об этом

говорят скобки в объявлении после имени каждого массива. При объявлении двумерного

массива между скобок должна стоять запятая. Объявление верхних границ индексов в

этих примерах отложено на потом (такие массивы называют динамическими).

Для объявления верхней границы индекса и размещения в памяти массивов следует

поместить инструкцию:

Redim x(10), y(4,5)

Здесь заданы значения верхних границ каждого индекса массивов. Индекс массива

x может принимать значение в диапазоне от 0 до 10. Массив x имеет 11 элементов.

Первый индекс массива y может принимать значение в диапазоне от 0 до 4. Второй

индекс массива y может принимать значение в диапазоне от 0 до 5. Массив y имеет 30

элементов (произведение числа строк на число столбцов).

При объявлении массива можно выполнить его инициализацию:

Dim z() As Single = {1.3, -2.7, 14.68, -5.5}

В этом примере объявлен одномерный массив z, имеющий 4 элемента, значения

которых заданы списком инициализации.

Массив, при объявлении которого верхние границы индексов не были указаны

(динамический массив), можно неоднократно переобъявлять с помощью инструкции

ReDim.

Среди инструкций внутри процедуры можно записать:

ReDim y(5, 10)

Далее этот массив может быть переобъявлен:

ReDim y(5, 20)

С помощью инструкции ReDim можно изменять только верхние границы индексов.

Размерность массива (количество индексов) можно задать один раз. Изменять ее нельзя.

Инструкцию ReDim можно применять для изменения динамического массива столько раз,

сколько потребуется. Однако при каждом ее применении данные, содержащиеся в

массиве, теряются.

Инструкция ReDim Preserve может увеличить размер массива, сохраняя при

этом его содержимое. В следующем примере показывается, как можно увеличить размер

массива a4 на 10 элементов без уничтожения текущих значений элементов массива. Пусть

был объявлен массив:

Dim a4 () As Integer.

Затем в программе установлен размер этого массива:

ReDim a4 (n).

Далее в программе может быть, например, записано:

ReDim Preserve a4(n+10)

Использование инструкции ReDim Preserve позволяет изменить верхнюю границу

только последней размерности массива.

Имеется возможность присвоить содержимое одного массива другому так же, как это

делается для простых переменных. Но эти массивы должны иметь одинаковые значения

размерностей и одинаковое количество элементов. Если же в левой части оператора

присвоения стоит динамический массив, то совпадение числа элементов не обязательно.

Число элементов массива в левой части оператора присвоения при необходимости

изменится.

Пример.

Dim a() As Integer = {1, 2, 3, 4}, b(), i As Integer

b = a

For i = 0 To 3

MsgBox(b(i))Next

Последовательно будет выведено: 1, 2, 3, 4.

Наши рекомендации