Наука, Техника, Языки

Оператор выбора

Оператор выбора, подобно оператору If … Then … Else, используется для выполнения тех или иных инструкций в зависимости от значения условия.

Синтаксис:

Select Case переменная

Case список_значений_1

[инструкции_1]

[Case список_значений_2

[инструкции_2]]

...

[Case список_значений_n

[инструкции_n]]

[Case Else

[инструкции_else]]

End Select

В операторе выбора вместо вычисления логического условия выполняется сравнение значения переменой с каждой из величин, заданных параметром список_значений.

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

– списка значений, перечисленных через запятую;

– диапазона значений в виде начальное_значение To конечное_значение;

– выражения сравнения в виде Is оператор_сравнения значение.

В инструкции может быть произвольное число блоков Case. Если ни одно из условий не является истинным, то выполняются инструкции блока Case Else.

Пример:

Select Case K

Case 1

C = A + B

Case 2

C = A - B

Case 3

C = A * B

Case Else

C = 0

End Select

3.4. Оператор цикла Do … Loop

Оператор цикла организует выполнение одних и тех же инструкций (тела цикла) до тех пор пока выполняется (или, наоборот, не выполняется) какое-то условие.

Оператор Do … Loop может быть использован для описания конструкций блок-схем представленных на рис.3.

а) Цикл с предусловием
б) Цикл с постусловием

Рис. 3

Оператор Do … Loop имеет две формы организации цикла: с предусловием и с постусловием.

Синтаксис оператора DoLoop с предусловием:

Do [While | Until условие]

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

[Exit Do]

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

Loop

Оператор Do … Loop с предусловием организует проверку условия перед каждым входом в цикл и выполнение инструкций, входящих в тело цикла до тех пор, пока условие истинно, если оно записано после ключевого слова While, или ложно, если оно записано после ключевого слова Until.

Оператор Exit Do завершает выполнение цикла и передает управление оператору, следующему за инструкцией Loop.

Синтаксис оператора DoLoop с постусловием:

Do

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

[Exit Do]

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

Loop [While | Until условие]

Оператор Do … Loop с постусловием организует проверку условия после каждого выполнения тела цикла. Если условие, записанное после ключевого слова While, истинно, или условие, записанное после ключевого слова Until, ложно, то управление передается на первый оператор тела цикла, иначе выполняется оператор, следующий за инструкцией Loop.

Примеры:

' Пример - 1

' цикл с предусловием

' будет выполняться до тех пор пока Х < 5

x = 0

Do While x < 5

x = x + 1

Loop

' Пример - 2

' цикл с предусловием

' будет выполняться до тех пор пока Х не станет равным 5

x = 0

Do Until x = 5

x = x + 1

Loop

' Пример - 3

' цикл без условия

' выход из тела цикла при Х равном 5

x = 0

Do

if x = 5 then Exit Do

x = x + 1

Loop

3.5. Оператор цикла со счетчиком For … Next

Оператор For … Next позволяет циклически выполнить набор утверждений заданное количество раз.

Синтаксис:

For счетчик = нач_значение To конеч_значение [Step шаг]

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

[Exit For]

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

Next [счетчик]

Параметр счетчик – это числовая переменная, автоматически изменяющая свое значение на величину шаг после каждого повтора цикла. Цикл выполняется до тех пор, пока счетчик £ конеч _значение при положительном значении параметра шаг или до тех пор, пока счетчик ³ конеч_значение при отрицательном значении параметра шаг. Если параметр Step шаг опущен, то по умолчанию приращение переменной-счетчика полагается равным 1.

Оператор Exit For завершает выполнение цикла и передает управление оператору, следующему за ключевым словом Next.

Примеры:

' заполнение значениями элементов одномерного массива A размером N

n = 5

For i = 1 To n

A(i) = i ^ 2

Next i

' заполнение значениями элементов двумерного массива A размером N x M

n = 5 : m = 4

For i = 1 To n

For j = 1 To m

A(i, j) = i + j

Next j

Next i

3.6. Оператор цикла For Each … Next

Цикл For Each … Next позволяет повторить выполнение группы инструкций для каждого элемента массива или семейства.

Синтаксис:

For Each элемент In группа

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

[Exit For]

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

Next [элемент]

Параметр элемент – это переменная, которая представляет элемент семейства или массива. Аргумент группа – имя массива или семейства. Инструкции выполняются только один раз для каждого члена группы. Использование инструкции удобно потому, что не требуется заранее знать, сколько элементов содержится в массиве или семействе.

Перечисленные выше операторы If … End If, Select … Case, Do … Loop, For … Next, For Each … Next представляют собой группу управляющих инструкций, которые изменяют порядок выполнения команд. Управляющие инструкции могут быть вложены друг в друга в любой последовательности.

3.7. Оператор With … End With

Большинство действий в VBA производится с использованием свойств и методов объектов, которые при написании отделяются от имени объекта точкой. При многократном обращении к одному и тому же объекту первая часть утверждений будет, таким образом, повторяться, что затрудняет восприятие текста программы. Для упрощения ссылок на свойства и методы объектов используется инструкция With … End With.

Синтаксис:

With объект

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

End With

Параметр объект – это имя требуемого объекта. Любые инструкции внутри блока With … End With, в которых используются данный объект, могут содержать название его свойства или метода без имени, начиная с точки.

Share
Tags :
06.04.2017