Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС лекция.docx
Скачиваний:
5
Добавлен:
01.09.2019
Размер:
67 Кб
Скачать

5 Управляющие структуры

Без управляющих структур нельзя создать более менее сложную программу. Без них можно реализовать только линейные алгоритмы, т.е. такие, в которых операторы программы выполняются последовательно друг за другом. И хотя процедуры и функции с линейным алгоритмом могут выполнять достаточно сложные задачи, они не в состоянии принять решение, влияющее на работу программы при определенных условиях.

Управляющие структуры - это операторы программного кода, определяющие, какие действия будут выполняться следующими, и использующие для этого некоторое условие.

К управляющим структурам VBA относятся:

- условные операторы IF... Then... Else ...; оператор выбора Select Case; цикл с конечным числом повторений FOR ... NEXT, цикл с условием DO ... LOOP;

цикл, FOR Each ... Next позволяющий повторять некоторые действия со всеми объектами семейства;

оператор With, позволяющий выполнять множество действий с одним объектом ,без необходимости каждый раз указывать имя объекта.

5.1 Условный оператор IF

Эта управляющая структура используется для выбора той или иной ветви выполнения программы на основании некоторого условия. Имеет два синтаксиса: однострочный и многострочный.

5.1.1 Однострочный синтаксис IF If условие Then команда1 [Else команда2]

Сначала проверяется условие и при его истинности выполняется команда1, а при ложности команда2.

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

оператор сравнения переменной с каким-либо значением, переменной или функцией;

Х>5 aob Z=lnt(X)

переменная, принимающая значение логического типа

Dim F As Boolean

If F Then

любая функция, возвращающая значение логического типа.

If IsNumeric(A) Then MsgBox "Вы ввели число" Else MsgBox "Это не число"

Функция IsNumeric(ebipaxeHue) возвращает Истину, если выражение является числом, иначе - Ложь.

Однострочный оператор IF называют еще простым оператором выбора. Он используется тогда, когда и условие и действия, выполняющиеся в случае истинности и ложности условия, являются достаточно простыми выражениями. Пример:

Вычислить Z. Z - cos(x), если Х>0 и Z = 1, иначе. Sub Вычисление_г()

Dim X As integer, Z As Double X = 1пр|ЛВох("Введите X") IF X>0 Then Z =Cos(x) Else Z = 1 MsgBox "Z = " & Z

End Sub

Если необходимо проверить несколько условий или в ответ н<д истинность (ложность) условия необходимо выполнить несколько действий, используют многострочный (блочный) синтаксис оператора IF.

5.1.2 Многострочный синтаксис оператора IF

If условие! Then [операторы 1]

[Elselfусловиеп Then [else if_ операторы] ...

[Else

[else операторы]J End If

Используется для анализа нескольких условий, на каждое из которых может быть свой отклик. Данная синтаксическая конструкция еще называется блочной и обязательно заканчивается End If,

t «Г

! При использовании блочного оператора if строго следите за формой его написания.

Пример: Покупатель приобретает товар по определенной цене. В зависимости от количества

Синтаксис:

MsgBo\(prompt[, buttonsj [, title] [, helpjile, context])

Отображает диалоговое окно с сообщением prompt и ожидает, пока пользователь щелкнет по какой-либо кнопке. Каждой кнопке ставится в соответствие целочисленная предопределенная константа Результат работы функции - целое число, обозначающее номер нажатой пользователем кнопки.

Buttons - перечисляются кнопки, которые должны присутствовать в диалоговом окне. Например,

константа vbOKOnly имеет значение 0 и выводит в диалоговом окне кнопку ОК;

константа vbYesNoCancel имеет значение 3 и выводит в диалоговом окне кнопки ОК и Cancel;

константа vbAbortRetrylgnore имеет значение 2 и выводит в диалоговом окне кнопки Abort, Retry, и Ignore. Полный перечень используемых функцией MsgBox констант можно увидеть в справке.

Title - заголовок окна.

helpfile, context-используется так же как и в функции InputBox для обеспечения контекстно- зависимой справки.

Например,

Dim К As integer

К= МэдВохСПродолжить работу?", vbYesNoCancel ,"Мое сообщение")

В результате выполнения этого оператора будет выведено следующее диалоговое окно:

Прсиопжить работу?

[| Да j Her J |

и в зависимости от номера нажатой кнопки (значения переменной К) выполнение программы пойдет тем или иным путем.

Если программисту неинтересно, какое значение возвращает функция MsgBox, то эту функцию можно использовать как процедуру, т.е. вне математического выражения и, не заключая аргументы в круглые скобки. Например,

MsgBox "Значение переменной " & К