Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
blnА = х > у And у > z ' Результат: False 'Оператор Not
blnА = Not(x < у) ' Результат: False 'Оператор Оr
blnА =x<y0ry>z ' Результат: True 'Оператор Хоr
blnА = х < у Хог у < z ' Результат: False 'Оператор Imp
blnА = х > у Imp у > z ' Результат: True 'Оператор Eqv
blnА = х < у Eqv у < z ' Результат: True
Конструкции управления
Зачастую в определенном месте программы необходимо выполнять те или иные операторы, в зависимости от некоторых условий. Эта возможность в Visual Basic реализуется при помощи так называемых управляющих конструкций (или структур), которые в свою очередь состоят из структур принятия решений и циклов. Ниже приводится подробное описание двух существующих конструкций принятия решений.
Конструкция If...Then. Существует несколько разновидностей данной структуры. Если при выполнении какого-либо усло-
вия необходимо выполнять один оператор, то нужно использовать конструкцию следующего вида:
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
Если результатом проверки условия является значение 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 )
В том случае, когда результатом проверки условия является значение 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, которое является необязательным в рассматриваемой конструкции.
В том случае, когда при нескольких значениях переменной необходимо выполнять один и тот же оператор (блок операторов), то список этих значений нужно указать после ключевого слова Case, разделяя их запятыми. Например:
Select Case x Case I
x = x + 1
Case 2, 3, 4
x = 10 Case Else
x = 20 End Select
Разновидности циклов
Кроме структур принятия решений, существует еще одна разновидность управляющих конструкций, называемая циклом. Цикл - это алгоритмическая структура, при помощи которой реализуется многократное повторение блоков операторов.
В языке Visual Basic существует два основных вида циклов, которые реализуются при помощи конструкций For... Next и Do... Loop.
Цикл For... Next. Используется в том случае, когда количество повторов заданного блока операторов известно заранее. Данная конструкция выглядит следующим образом:
For счетчик = нач. значение то кон. значение [Step шаг]
Операторы1 [Exit For]
Операторы2 Next [счетчик]
Когда приведенные операторы выполняются первый раз, то переменной-счетчику присваивается начальное значение, после чего возможны два варианта действий. Если в результате проверки условия счетчик > конечное и было получено значение True, то происходит завершение цикла, при этом блоки Операторы! и Операторы2 ни разу не выполняются. С другой стороны, если результатом проверки условия является False, то в этом случае блоки операторов выполняются первый раз, после
чего происходит переход на начало цикла. Далее значение переменной-счетчика увеличивается на шаг, расположенный после ключевого слова Step (в случае его отсутствия устанавливается шаг = 1). После этого снова проверяется истинность условия счетчик > конечное значение и т. д., окончание цикла происходит в тот момент, когда результатом данной проверки станет значение True.
Зачастую бывает необходимо "аварийно" завершать работу цикла при выполнении какого-либо дополнительного условия. В этом случае внутри цикла следует использовать служебное словосочетание Exit For, которое обычно располагают в управляющей конструкции, например:
If условие Then Exit For
Если результатом проверки условия будет значение True, то выполнение цикла будет прекращено, причем блок Операторы1 будет выполнен очередной раз, а блок Операторы2 - нет.
Цикл Do—Loop. Применяется в том случае, когда число повторений операторов тела цикла заранее неизвестно. Существует четыре разновидности данной конструкции. При использовании первых двух цикл либо выполнится много раз, либо не выполнится вообще.
Do Until условие Операторы
Loop
Если результатом проверки условия является значение False, то блок Операторы выполняется, иначе осуществляется переход на оператор, расположенный после служебного слова Loop. С другой стороны, если первая проверка условия даст результат True, то цикл не выполнится ни разу.
Do While условие
Операторы Loop
Если условие истинно, то происходит выполнение блока Операторы, если же оно ложно, то есть результатом проверки является значение False, то цикл ни разу не выполнится.
В случае использования последних двух конструкций цикл будет выполнен хотя бы один раз.
Do
Операторы Loop Until условие
Блок Операторы выполняется до тех пор, пока результатом проверки условия является значение False, иначе выполнение цикла заканчивается.
Do
Операторы Loop While условие
В случае ложности условия выполняется блок Операторы, если же оно истинно, то есть результатом проверки является значение True, то происходит окончание цикла.
В том случае, когда необходимо прервать выполнение цикла, применяются разновидности оператора Exit, который располагается в конструкции принятия решения. При этом для цикла For... Next используется Exit For, а для любого из циклов Do... Loop применяется Exit Do. После выполнения данного оператора происходит немедленное завершение цикла без выполнения каких-либо дополнительных операций.
Если аварийное завершение было использовано в цикле For...Next, то значение переменной-счетчика останется таким, каким оно было в момент выхода, в отличие от нормального завершения работы цикла, когда оно становится на единицу больше заданного конечного значения. Приведенная особенность зачастую может быть использована при решении различных задач.
Пример 6.1. Имеется массив из десяти числовых элементов. Необходимо определить среди них первое положительное значение и его индекс, после чего завершить дальнейшую проверку.
Листинг 6.4. Поиск в массиве первого положительного элемента
Dim intArray(l To 10) As Integer
Dim inti As Integer
Dim intResult As Integer
Дата публикования: 2015-01-23; Прочитано: 303 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!