Порядок выполнения инструкций в разветвляющихся вычислительных процессах зависит от условий, которые проверяются по ходу вычислений, и реализуется вследствие этого по одному из нескольких заранее предусмотренных (возможных) направлений. Каждое отдельное направление называется ветвью вычислений. Разветвляющийся вычислительный процесс схематически представлен различными структурами, рис.8.2.а).- рис. 8.2.б). Такие структуры можно реализовать в программах с помощью инструкций условного перехода (If...Then... Else) и выбора по значению(Select Case... EndSelect). Изменить порядок выполнения программы можно также с помощью инструкции GOTO < метка>, называемой безусловным переходом. Инструкция безусловного перехода используется в тех случаях, когда необходимо выполнить не следующую по порядку инструкцию в программе, а, инструкцию помеченную меткой. Формат записи безусловного перехода:
Goto < метка>
Примечание. Во избежание зацикливания оператор Goto <метка > целесообразнее использовать в операторе If, если необходим безусловный переход к помеченному оператору.
|
|
Условный оператор If
В VBA имеются две формы записи условного оператора: полная и сокращенная. Форматзаписи оператора условного перехода:
If <условие > Then < инструкция _1 > [Else < инструкция р 2 >]
If(если), Then(то), Else(иначе)- ключевые(служебные) слова.
Условие представляет собой выражение логического типа. Оператор If работает следующим образом: если условие истинно (имеет значение True), то выполняется инструкция _1(первая ветвь), в противном случае выполняется инструкция _2(вторая ветвь). Обе ветви могут содержать несколько, инструкций, разделенных двоеточием.
Примеры записи инструкции If.
If x>0 Then x=x+1 Else x=0
If x>0 Then x=x+1: MsgBox x Else x=0
If y>0 Then y=sqr(y)
Для организации разветвлений на три направления и более можно использовать несколько конструкций If, вложенных друг в друга. При этом каждое Else соответствует непосредственно предшествующему ему Then.
Формат конструкции:
If < условие> Then
< инструкции>
ElseIf < условие> Then
< инструкции>
ElseIf < условие > Then
…..
…..
Else
< инструкции >
End If
Примечание. Из-за возможных ошибок следует избегать большой вложенности условных конструкций.
Примеры алгоритмов разветвляющейся структуры и соответствующих им программ с использованием If.