
2.4. Операторы сравнения и логические операторы
Определение порядка действий в программе проводится при помощи проверки
истинности некоторых условий, которые представляют собой логические выражения.
Логические выражения записываются при помощи операторов сравнения и
логических операторов и чаще всего используются в управляющей структуре If ...
Результат логического выражения - данное булевского типа: True (истина) или False
(ложь).Then. Формат записи логического выражения
операнд1 оператор_сравнения операнд2,
где операторы сравнения используются для сравнения значений операндов
(любого типа). В Visual Basic применяются следующие операторы сравнения:
. = — равно;
. <> — не равно;
. > — больше;
. < — меньше;
. >= — больше или равно;
. <= — меньше или равно.
Например, при сравнении 5>1 будет возвращено значение True (действительно, число 5
больше чем число 1), а при сравнении 5=1 будет возвращено значение False.
Для записи более сложных логических выражений используются логические
операторы, которые выполняются только над операндами, имеющими тип Boolean. В
Visual Basic доступны следующие логические операторы: Not (Отрицание), And
(Конъюнкция - логическое И), Or (дизъюнкция - логическое ИЛИ), Xor
(исключающая дизъюнкция - исключающее ИЛИ). Синтаксис операторов:
Not операнд1
Операнд1 And Операнд2
Операнд1 Or Операнд2
Операнд1 Xor Операнд2
Операция Not выполняется над одним операндом, а все остальные — над двумя
операндами. Приведем результаты выполнения этих логических операций над всеми
возможными вариантами значений операндов.
Операнд
1
Операнд
2
Not
And
Or
Xor
True
True
False
True
True
False
True
False
False
False
True
True
False
True
True
False
True
True
False
False
True
False
False
False
Пример использования этих операций:
ЕСЛИ 5=2 Or 4>2, ТО А=5.
Если записать это выражение на языке Visual Basic ., то мы получим:
If (5=2) Or (4>2) Then
A=5
EndIf
Переменной A будет присвоено значение 5, т. к. условие верно.
2.5. Условные операторы
Условные операторы применяются для того, чтобы, в зависимости от выполнения
тех или иных условий, передавать управление той или иной части программы. В Visual
Basic . имеется два основных оператора условия:
. управляющая структура If .. Then .. Else;
. управляющая структура Select.. Case.
Рассмотрим, когда нужно применять ту или иную управляющую структуру.
2.6. Управляющая структура If.. Then.. Else
Эта структура встречается в программах наиболее часто. Она может иметь как
упрошенную форму, так и стандартную.
В упрощенной форме данная структура имеет вид:
If выражение Then
Операторы
End If
Если перевести это "на русский язык", то получится что-то вроде:
Если выражение истинно, то
выполняем операторы
конец условия
Приведем фрагмент программы, в которой одно число делится на другое с
проверкой, не является ли делитель равным нулю:
Dim a As Integer, b As Integer
a = 6
b = 2
If (b <> 0) Then
a = a / b
End If
В данном примере деление a на b произойдет, т. к. b не равно нулю и выражение
(intB <> 0) является истинным. Если же мы запишем третью строку так:
b = 0,
то выражение в условии примет значение False (ложь) и операция деления,
стоящая после Then, выполняться не будет, следовательно, не будет и ошибки
деления на ноль.
В стандартной форме структура If .. Then имеет вид:
If выражение Then
Операторы
Else
Операторы, выполняемые в случае, если выражение ложно
End If
Например, мы можем расширить наш предыдущий пример так:
Dim a As Integer, b As Integer
a = 6
b = 2
If ( b <> 0 ) Then
a = a / b
Else
Form1.Print("На ноль делить нельзя!")
Endlf
В данном случае, если выражение (b <> 0) будет истинно, то выполнится
операция деления. В противном случае, если выражение ложно, будет выдано
сообщение: "На ноль делить нельзя!".
Заметим, что в качестве операторов в структурах If .. Then могут быть и
структуры If .. Then:
If выражение1 Then
Операторы1
If выражение2 Then
Операторы2
Else
Операторы3
End If
Else
Операторы4
End If
2.7. Управляющая структура Select Case
Иногда возникает необходимость проверить несколько значений одного и того
же выражения. Для этого можно использовать управляющую структуру выбора Select
Case, синтаксис которой представлен ниже:
Select Case выражение
Case Is = условие1
Операторы1
Case Is = условие2
Операторы2
…
Case Is = условиеN
ОператорыN
Case Else
Операторы
End Select
где выражение – любое допустимое в Basic выражение, число или строка.
Условия могут содержать
. Оператор сравнения и число, переменную или выражение
. Оператор равно и несколько выражений через запятую, в том числе структуры
Выражение1 To Выражение2.
Теперь запишем приведенный выше пример с использованием Select Case:
Select Case intA
Case Is < 0
Операторы
Case Is = 1
Операторы
Case Is > 12
Операторы
Case Else
Операторы
End Select
Такая запись будет лучше читаться, поэтому в данном случае предпочтительнее
использовать такую структуру.
Кроме того, в управляющей структуре Select Case можно использовать более чем
одно возможное значение, например:
Select Case intA
Case Is = -1, 0, 1, 2
intB = intA + intB
Case Is = 5, 10 To 15
intB = intA — intB
End Select
В данном примере, если переменная intA принимает одно из значений: — 1, 0, 1
или 2, то будет выполнена операция сложения. Если же переменная intA принимает
одно из значений: 5 или от 10 до 15 (10 To 15), то будет выполнена операция
вычитания.
2.8. Операторы циклов
В случае, если выполнение некоторого фрагмента программы надо повторить
определенное количество раз, то применяется цикл
. с фиксированным количеством повторений (структура For .. Next);
если цикл повторяется, пока не будет выполнено какое-либо условие, то
применяется цикл
. с условием (структура Do .. Loop).
Цикл с фиксированным количеством повторений
В этом случае заранее известно количество повторений фрагмента кода
программы. Синтаксис такого цикла имеет вид:
For переменная_цикла = начальное_значение То конечное_значение [Step шаг]
[операторы]
Next [переменная_цикла]
Примечание
Здесь и далее, когда приводится синтаксис какой-либо языковой конструкции, слова,
заключенные в квадратные скобки, не являются обязательными.
При выполнении такого цикла переменная_цикла является своеобразным
счетчиком. Она увеличивается (или уменьшается) с каждым выполнением цикла на
число (шаг), указанное после ключевого слова Step. Если шаг не указан, то по умолчанию
он равен 1.Шаг может быть отрицательным, тогда счетчик убывает. Выполнение
операторов внутри цикла производится до тех пор, пока переменная_цикла не станет
больше (если шаг положителен) величины конечное_значение.
Приведем пример:
Dim i As Integer, sum As Integer
For i = 1 To 10
sum = sum + i
Next i
В данном примере переменная i используется в качестве переменной счетчика цикла.
Цикл будет выполнен 10 раз, т. е. строка
sum = sum + i
выполнится 10 раз, причем значение переменной i будет изменяться от 1 до 10 с шагом
1: 1, 2, 3, ..., 10.
Таким образом, в результате выполнения такого цикла в переменную sum
будет записан результат сложения всех чисел от 1 до 10:
1+2+3+...+ 10.
После слова Next в нашем примере указана переменная цикла i. Этого можно не
делать, однако, указывая имя переменной, вы улучшаете читаемость кода
программы, особенно если в ней много вложенных циклов.
Циклы могут быть вложенными один в другой. Приведем пример:
Dim i1 As Integer, i2 As Integer, sum As Integer
sum = 0
For i1 = 1 To 10
For i2 = 1 To 5
sum = sum + i2
Next i2
Next i1
В этом примере цикл с переменной цикла i2 будет вложен в цикл с переменной цикла i1.
Вы должны всегда завершать с помощью ключевого слова Next сначала вложенный цикл, и
только затем внешний!
Приведем последний пример с циклом For .. Next. Он покажет, как можно
использовать шаг. Например, нам нужно посчитать сумму всех четных чисел от 1
до 100:
Dim i As Integer, sum As Integer
For i = 2 To 100 Step 2
sum = sum + i
Next i
Так как первое четное число равно 2, то цикл мы начнем с него. Каждое четное число
делится на 2, поэтому шаг зададим равным 2 (step 2).