Теперь о деталях. Как вы знаете, значением логической переменной всегда является либо True, либо False. Поэтому выражение
bоо1До18 ' это значение либо True, либо False
вполне подойдет в качестве условия в условном выражении, как, например, в случае
If bоо1До18 Then
ПредоставитьСкидку
End If
Но True и False имеют числовые значения, а поэтому в качестве условия можно использовать и любое числовое выражение. Все следующие выражения подходят для использования в качестве условий:
1234 ' всегда True
0 ' всегда False
True ' всегда True
False ' всегда False
intHowManyPets ' False, если intHowManyPets = 0
ingA + lngB + lngC ' False, если сумма = 0
Свойства объектов часто представляют логические значения, поэтому в качестве условий нередко используются выражения типа frmHelpWindow.Enabled и безо всяких операций сравнения.
Нельзя использовать строки и объекты в качестве условий сами по себе, хотя они вполне годятся для использования в качестве компонентов выражений, построенных на основе подходящей операции сравнения.
Использование логических операций в условиях
Логические операции (см. главу 7) сначала оценивают значения входящих в выражение двух выражений-компонентов как True или False, а затем, в соответствии с определенными правилами, на основе этих значений получается конечный результат- тоже True или False.
Самыми важными логическими операциями (точнее, теми из них, использование которых проше всего объяснить) будут And, Or и Хог. Следующая таблица объясняет, что эти операции выполняют.
Операция | Возвращает True | Примеры | Результат |
And | Только если оба выражения принимают значения True | 3 * 2 = 6 And 12 > 11 | True |
2 + 2 = 4 And 4 - 2 = 1 | False |
Or | Если хотя бы одно из двух выражений принимает значение True | 10 > 20 Or 20 > 10 | True |
5 < 4 Or 6 < 5 | False |
Хоr | Если только одно из двух выражений принимает значение True | - 5 + 5 < 9 Хог 5 + 5 = 10 | True |
5 + 5 > 9 Хог 5 + 5 = 10 | False |
Если желаете, можете использовать две логические операции в одном условном выражении. Полюбуйтесь, например, таким выражением:
(а + b > 20 And с = 10) Or (objDoor.Open)
В переводе на русский язык этот фрагмент программного кода можно прочитать так:
"Данное выражение есть истина, когда, либо а + b больше, чем 20, а с равно 10, либо свойство Open объекта objDoor принимает значение True".
Я советовал бы не перегружать одно выражение несколькими логическими операциями, разве что вы настолько сообразительны, что вам вообще не нужен компьютер. А чтобы гарантировать применение операций именно к тем выражениям, к которым нужно, используйте скобки. В предыдущем примере скобки вокруг выражения objDoor.Open гарантируют, что именно это выражение будет участвовать в операции Or первым.