Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 6(VBA).doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

Конструкции управления

Зачастую в определенном месте программы необходимо вы­полнять те или иные операторы, в зависимости от некоторых условий. Эта возможность в Visual Basic реализуется при помощи так называемых управляющих конструкций (или структур), кото­рые в свою очередь состоят из структур принятия решений и циклов. Ниже приводится подробное описание двух существую­щих конструкций принятия решений.

Конструкция If ...Then. Существует несколько разновидно­стей данной структуры. Если при выполнении какого-либо усло-

434

вия необходимо выполнять один оператор, то нужно использо­вать конструкцию следующего вида:

If условие Then оператор

В том случае, когда результатом проверки условия является значение True (Истина), то выполняется оператор, находящийся после служебного слова Then. С другой стороны, если после проверки условия было получено значение False (Ложь), то выполнится следующий по порядку оператор. Все описанные параметры данной структуры должны быть указаны в одной строке.

Если при выполнении условия требуется выполнил, не один, а несколько операторов, то следует использовать такую конструкцию:

If условие Then Операторы End If

В случае истинности проверяемого условия будут выполнены операторы, расположенные после ключевого слова Then. С другой стороны, если условие является ложным, то выполняется следую­щий после данной конструкции оператор. В том случае, когда в блоке операторы находится только один оператор, то данная структура все равно должна заканчиваться служебным словосоче­танием End If.

При необходимости выполнения того или иного оператора (или блока операторов), в зависимости от результата проверки опреде­ленного условия, в языке Visual Basic следует использовать сле­дующую конструкцию:

If условие Then

операторы1 Else

операторы2

End If

или

If условие Then операторы1 Else: операторы2

End If

435

Если результатом проверки условия является значение True, то будет выполнен блок операторы1, находящийся после клю­чевого слова Then. С другой стороны, если проверка условия дала результат False, то будет выполнен блок операторы2, расположенный после служебного слова Else.

Во втором из приведенных вариантов в качестве блока опе­раторы2 может использоваться как один оператор (тогда он за­писывается после знака «:» в той же строке, что и служебное слово Else), так и несколько (при этом каждый оператор, начи­ная со второго, записывается в отдельной строке).

В том случае, когда определенное действие (или набор дейст­вий) нужно выполнять после проверки не одного, а нескольких условий, на языке Visual Basic следует использовать такую управляющую структуру:

If условие1 Then

операторы1 Elself условие2 Then

операторы2

[Else

onepaтopы N] End If

Если условие1, находящееся после ключевого слова If ис­тинно, то выполняется блок операторы1, расположенный после Then. Если же оно ложно, то осуществляется проверка условия2, находящегося после служебного слова Elself, в случае его истинности выполняется блок операторы2 и т. д. Если ни одно из этих условий не является истинным, то есть результатом всех проверок является значение False, то выполняется блок операторыN, расположенный после ключевого слова Else (данный блок является необязательным).

В дополнение к приведенной выше структуре If ...Then сле­дует также рассмотреть функцию llf, которая возвращает одно из двух значений, в зависимости от проверяемого условия. Син­таксис данной функции имеет такой вид:

IIf(условие, значение1, эначение2)

436

В том случае, когда результатом проверки условия является значение True, функция возвращает значение1, а когда про­верка дает значение False, то возвращаемый результат - значение2. Например:

Dim intA As Integer, strA As String

intA = 6

strA = IIf(intA Mod 2 = 0, _

"Четное", "Нечетное")

Если число intA делится на 2 без остатка, то строке strA будет присвоено значение "Четное", в противном случае -"Нечетное".

Конструкция Select Case. Когда существует несколько операторов (или блоков операторов), которые необходимо вы­полнять в случае истинности того или иного условия, то запись конструкции If...Then окажется достаточно громоздкой. Поэто­му в подобных случаях следует использовать структуру Select Case, которая улучшает читаемость программы. Ее общий вид выглядит следующим образом:

Select Case переменная Case значени1

операторы1 Case значение2

операторы2

[Case Else

операторыN] End Select

Если переменная содержит значение1, расположенное по­сле первого по порядку ключевого слова Case, то выполняется блок оператор1. С другой стороны, если содержимое пере­менной равно значению2, то выполняется блок операторы2 и т. д. Когда содержимое переменной не равно ни одному из при­веденных значений, то выполняется блок операторы N, находя­щийся после служебного словосочетания Case Else, которое является необязательным в рассматриваемой конструкции.

437

В том случае, когда при нескольких значениях переменной необходимо выполнять один и тот же оператор (блок операто­ров), то список этих значений нужно указать после ключевого слова Case, разделяя их запятыми. Например:

Select Case x Case I

x = x + 1

Case 2, 3, 4

x = 10 Case Else

x = 20 End Select