Операторы.

Логические, арифметические, сравнения.

 

По порядку:
Арифметические:

^

*

/

\

Mod

+

-

 оператор возведения в степень

 оператор умножения

 оператор деления

 оператор целочисленного деления

 оператор вычисления остатка от деления

 оператор сложения

 оператор вычитания

Сравнения:

<

>

<=

>=

=

<>

Is

Like

 меньше

 больше

 меньше или равно

 больше или равно

 равно

 не равно

 оператор сравнения объектов

 оператор сравнения строк

 
Конкатенации:

+

&

 оператор конкатенации

 оператор конкатенации

 
Логические:

And

Eqv

Imp

Not

Or

Xor

 оператор логического умножения

 оператор логической эквивалентности

 оператор логической импликации

 оператор логического отрицания

 оператор логического сложения

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

 

 

оператор ^ (возведение в степень)

Этот оператор предназначен для возведения числа в степень.

Синтаксис:

результат = число ^ степень

Параметры:

результат - обязателен; любая числовая переменная
число - обязательно; любое числовое выражение
степень - обязателена; любое числовое выражение

Замечания:

число может быть отрицательное, только в том случае, когда степень - целое число. Если в одном выражении используется несколько операторов ^, то вычисление происходит слева направо. Обычно тип результата - Double. Однако, если или степень, или число - Null выражение, то результат тоже Null.

Пример:

Dim MyValue
MyValue = 2 ^ 2 ' Возвратит 4.
MyValue = 2 ^ 3 ^ 3 ' Возвратит 512 (2^3=8, 8^3=512)
MyValue = (-5) ^ 3 ' Возвратит -125.

Советы:

Если вам необходимо возвести число в постоянную степень, то лучше использовать несколько операторов - умножений, чем один - возведение в степерь, судите сами, цикл в миллион проходов с вычислением выражения проходил:

test1 = 2 ^ 8 ' 893мс
test1 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 ' 130мс!

 

оператор * (умножение)

Используется для перемножения двух чисел.

Синтаксис:

результат = число1 * число2

Параметры:

результат - обязателен; любая числовая переменная
число1 - обязательно; любое числовое выражение
число2 - обязательно; любое числовое выражение

Замечания:

Тип данных результата обычно такой же, как и самый точный тип из двух чисел. Порядок точности, от большего к меньшему - Byte, Integer, Long, Single, Currency, Double, Decimal. Правда, есть исключения:

bullet

Если перемножаются Single и Long, то результат - Double

bullet

Если тип данных результата - Long Single или Date, в который не помещается сам результат выражения, то результат конвертируется в Variant, содержащий Double.

Если число1 или число2 - Null, то оно интерпретируется просто как обычный 0.

Порядок точности в умножение отличен от тех, что используются в сложении и вычитании.

Пример:

Dim MyValue
MyValue = 2 * 2 ' Возвратит 4.
MyValue = 459.35 * MyValue ' Возвратит 495.35 * 4

 

оператор / (деление)

Используется для деления двух чисел и получить результат с плавающей точкой.

Синтаксис:

результат = число1 / число2

Параметры:

результат - обязателен; любая числовая переменная
число1 - обязательно; любое числовое выражение
число2 - обязательно; любое числовое выражение

Замечания:

Результат обычно имеет тип Double. Правда, есть исключения:

bullet

Если оба выражения выражения имеют тип Byte, Integer, Single, то результат Single. Однако, если размеры выражения не вписываются в рамки Single, происходит ошибка.

bullet

Если оба выражения выражения имеют тип Variant, содержащий Byte, Integer или Single, то результат Single Variant. Однако, если размеры выражения не вписываются в рамки Single, то Double Variant.

bullet

Если одно из чисел имеет тип Decimal, то и результат - Decimal.

Если число1 или число2 - Null, то оно интерпретируется просто как обычный 0.

Примеры:

Dim MyValue
MyValue = 10 / 4 ' Возвратит 2.5.
MyValue = 10 / 3 ' Возвратит 3.333333.

 

оператор \ (целочисленное деление)

Используется для деления двух чисел и получить целочисленный результат.

Синтаксис:

результат = число1 \ число2

Параметры:

результат - обязателен; любая числовая переменная
число1 - обязательно; любое числовое выражение
число2 - обязательно; любое числовое выражение

Замечания:

Перед тем, как происходит такое деление, выражения округляются до Byte, Integer или Long выражений. Обычно тип данных результата Byte, Byte variant, Integer, Integer variant, Long, or Long variant. Любая дробная часть обрезается.

Однако, если любое из выражений Null, то и результат Null. Любое выражение, содержащее Empty интерпретируется как 0.

Примеры:

Dim MyValue
MyValue = 11 \ 4 ' Возвратит 2.
MyValue = 9 \ 3 ' Возвратит 3.
MyValue = 100 \ 3 ' Возвратит 33.

 

оператор Mod (остаток от деления)

Используется для деления двух чисел и получение остатка от их деления.

Синтаксис:

результат = число1 Mod число2

Параметры:

результат - обязателен; любая числовая переменная
число1 - обязательно; любое числовое выражение
число2 - обязательно; любое числовое выражение

Замечания:

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

A = 19 Mod 6.7

Что здесь происходит? Сначала округляется число 6.7 до 7. Затем происходит деление, получаем 2.7.... Остаток от деления = 5. (2 * 7 = 14, 19 - 14 = 5).

Результат обычно имеет тип Byte, Byte variant, Integer, Integer variant, Long, или Variant содержащий Long.

Если любое из выражений Null, то и результат Null. Любое выражение, содержащее Empty интерпретируется как 0.

Примеры:

Dim MyResult
MyResult = 10 Mod 5 ' Возвратит 0.
MyResult = 10 Mod 3 ' Возвратит 1.
MyResult = 12 Mod 4.3 ' Возвратит 0.
MyResult = 12.6 Mod 5 ' Возвратит 3.

 

оператор + (сложение)

Используется для сложения двух чисел.

Синтаксис:

результат = выражение1 + выражение2

Параметры:

результат - обязателен; любая числовая переменная
выражение1 - обязательно; любое выражение
выражение2 - обязательно; любое выражение

Замечания:

Когда вы используете оператор +, вы не можете определить что произойдёт, сложение или конкатенация строк. Для конкатенации используйте оператор &, чтобы избежать недоразумений и сделать код более читабельным.

Если одно из выражений не Variant, то применяются следующие правила:

bullet

Если оба выражения имеют численный тип (Byte, Boolean, Integer, Long, Single, Double, Date, Currency, или Decimal) - то происходит их сложение.

bullet

Если оба выражения строки - конкатенация.

bullet

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

bullet

Если одно из выражений строка, а другое любое Variant значение, то происходит конкатенация.

bullet

Если одно из выражений содержит Empty, то возвращается второе, не изменённое выражение.

bullet

Если одно из выражений имеет численный тип, а другое - строка, происходит ошибка несовпадения типов (Type mismatch).

bullet

Если любое выражение Null - тогда и результат тоже Null.

Если оба выражения Variant, то применяются следующие правила:

bullet

Если оба выражения числа - то они складываются.

bullet

Если оба выражения строки - то они конкатенируются.

bullet

Если одно из выражений число, а другое строка - происходит сложение.

Для обычного сложения тип данных результата обычно такой же, как и самый точный тип из двух чисел. Порядок точности следующий - Byte, Integer, Long, Single, Double, Currency, и Decimal. Есть исключения:

bullet

Если складываются Single и Long, то результат - Double

bullet

Если складываются выражение с типом Date, с любым другим выражением, то результат - Date.

Если одно или оба выражения Null, то результат тоже Null. Если оба из выражений содержат Empty, результат Integer. Если только одно, то в качестве результата возвращается не изменённое второе выражение.

Порядок точности в сложении и вычитании отличен от тех, что используются в умножении.

Примеры:

Dim MyNumber, Var1, Var2
MyNumber = 2 + 2 ' Возвратит 4.
MyNumber = 4257.04 + 98112 ' Возвратит 102369.04.

Var1 = "34"
Var2 = 6 ' Инициализируем смешанные переменные
MyNumber = Var1 + Var2 ' Возвратит 40.

Var1 = "34"
Var2 = "6" ' Инициализируем переменные со строками
MyNumber = Var1 + Var2 ' Возвратит "346" (произошла
' конкатенация, а не сложение!).

Советы:

Оператор сложение (+) можно использовать для сложения дат, т.е. переменных типа Date:

Dim d As Date
d = DateSerial(2002, 8, 15) ' иниализация даты 15.08.2002
d = d + 15 ' теперь d содержит дату 30.08.2002
' т.е. мы прибавили 15 дней

 

оператор - (вычитание, смена знака)

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

Синтаксис:

результат = выражение1 - выражение2

или

-выражение

Параметры:

результат - обязателен; любая числовая переменная
выражение - обязательно; любое выражение
выражение1 - обязательно; любое выражение
выражение2 - обязательно; любое выражение

Замечания:

В первом синтаксисе, оператор "-" необходим для нахождения разницы между двумя числами. Во втором синтаксисе, "-" используется для смены знака у выражения.

Тип данных результата обычно такой же, как и самый точный тип из двух чисел. Порядок точности следующий - Byte, Integer, Long, Single, Double, Currency, и Decimal. Есть исключения:

bullet

Если в вычитании участвуют типы Single и Long, то результат - Double

bullet

Если в вычитании используется выражение с типом Date,
то результат - Date.

bullet

Вычитание двух дат, даёт в результате Double.

Если одно или оба выражения Null, то результат тоже Null. Если одно из выражений Empty, то оно интерпретируется как 0.

Порядок точности в сложении и вычитании отличен от тех, что используются в умножении.

Примеры:

Dim MyResult
MyResult = 4 - 2 ' Возвратит 2.
MyResult = 459.35 - 334.90 ' Возвратит 124.45.

Советы:

Как и оператор сложение, оператор вычитание может быть применён для вычисления разницы (в днях) между двумя датами:

Dim d1 As Date
Dim d2 As Date
Dim razn As Long
d1 = DateSerial(1983, 10, 14)
d2 = DateSerial(2002, 8, 15)
razn = d2 - d1 ' разница в днях (6880).

Операторы сравнения

Используются для сравнения некоторых выражений. Имеют 3 синтаксиса:

Синтаксис:

результат = выражение1 операторсравнения выражение2
результат = объект1 Is объект2
результат = строка Like образец

Параметры:

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

Замечания:

Следующая таблица содержит список операторов сравнения и условия, по которым определяется результат выражения (True или False).

Оператор

True, если

False, если

Null, если

< (меньше чем)

выражение1 <
выражение2

выражение1 >=
выражение2

одно
из
выражений содержит Null

<= (меньше или равно)

выражение1 <=
выражение2

выражение1 >
выражение2

> (больше чем)

выражение1 >
выражение2

выражение1 <=
выражение2

>= (больше или равно)

выражение1 >=
выражение2

выражение1 <
выражение2

= (равно)

выражение1 =
выражение2

выражение1 <>
выражение2

<> (не равно)

выражение1 <>
выражение2

выражение1 =
выражение2

Операторы Is и Like выполняют специфические функции, и их таблица сравнения отличается от приведённой (их мы рассмотрим ниже).

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

bullet

Если оба выражения числа (Byte, Boolean, Integer, Long, Single, Double, Date, Currency, или Decimal), то происходит сравнение чисел.

bullet

Если оба выражения строки, то происходит сравнение строк. (меньшая строка та, первая и последующие буквы которой имею меньший ascii код).

bullet

Если одно из выражений число, а другое Variant, который может быть трактован как число, то происходит сравнение чисел.

bullet

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

bullet

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

bullet

Если одно из выражений Empty, а другое число, то происходит сравнение чисел, где Empty рассматривается как 0.

bullet

Если одно из выражений Empty, а другое строка, то происходит сравнение строк, где Empty рассматривается как пустая строка "".

Если и первое выражение и второе имеют тип Variant, то выражения сравниваются, согласно тем типам данных, которые содержит Variant:

bullet

Если оба Variant выражения содержат числа, то происходит сравнение чисел.

bullet

Если оба Variant выражения содержат строки, то происходит сравнение строк.

bullet

Если одно из Variant выражений содержит число, а другое строку, то числовое выражение меньше строкового.

bullet

Если одно из Variant выражений Empty, а другое число, то Empty рассматривается как 0.

bullet

Если одно из Variant выражений Empty, а другое строка, то Empty рассматривается как пустая строка "".

bullet

Если оба выражения Empty, то они рассматриваются как равные.

Когда Single переменная сравнивается с Double, то Double округляется до точности Single.

Если Currency сравнивается с Single или Double, то Single или Double конвертируются в Currency. Точно так же, при сравнении Decimal с Single или Double, то Single или Double конвертируются в Decimal. Для Currency любая дробная часть меньшая, чем .0001, может быть утеряна. Для Decimal это значение 1E-28, или может произойти ошибка. Таким образом, при потере дробной части, выражения могут интерпретироваться как равные, хотя на самом деле, одно от другого будет отличаться. (хоть и на маленькое значение).

Примеры:

Dim MyResult, Var1, Var2
MyResult = (45 < 35) ' Возвратит False.
MyResult = (45 = 45) ' Возвратит True.
MyResult = (4 <> 3) ' Возвратит True.
MyResult = ("5" > "4") ' Возвратит True.

Var1 = "5": Var2 = 4 ' в VB можно использовать двоеточие,
' для разделения операторов.
MyResult = (Var1 > Var2) ' Возвратит True.

Var1 = 5: Var2 = Empty
MyResult = (Var1 > Var2) ' Возвратит True.

Var1 = 0: Var2 = Empty
MyResult = (Var1 = Var2) ' Возвратит True.

 

оператор сравнения Is

Этот оператор используется для сравнения объктных переменных.

Синтаксис этого оператора приведён выше.

Замечания:

Если объект1 и объект1 ссылаются на один и тот же объект, то результат - True, если нет, то False. Две переменные могут ссылается на один и тот же объект несколькими путями. В следующем примере, A ссылается на тот же объект, что и B:

Set A = B

Следующий пример делает так, что переменные A и B ссылаются на один и тот же объект - C:

Set A = C
Set B = C

Примеры:

Dim MyObject, YourObject, ThisObject, _
OtherObject, ThatObject, MyCheck

Set YourObject = MyObject ' создаём ссылки на объекты
Set ThisObject = MyObject
Set ThatObject = OtherObject
MyCheck = YourObject Is ThisObject ' Возвратит True.
MyCheck = ThatObject Is ThisObject ' Возвратит False.
' Предполагаем, что MyObject <> OtherObject
MyCheck = MyObject Is ThatObject ' Возвратит False.

 

оператор сравнения строк - Like

Оператор сравнения строк Like используется для сравнения строк.

Синтаксис этого оператора уже рассмотрен выше.

Замечание:

Этот оператор можно использовать для проверки строки String на маску Pattern. Это очень мощный оператор, почти аналог регулярных выражений в Perl.

Итак, работает этот ператор следующим образом. Если строка подходит под маску, то результат True. Если нет - False. Если одно из выражений Null - результат тоже Null.

Поведение оператора Like зависит от установленного по умолчанию типа сравнения строк. (оператор Option Compare).

Если установлен тип Binary (т.е. двоичное сравнение), то строки сравниваются согласно их Ascii кодам (в разных кодировках она разная). Обычно используется такая последовательность:

A < B < E < Z < a < b < e < z < А < К < Я < а < к < я

Если установлен тип Text (текстовое сравнение). При таком сравнении последовательность отличается от предыдущей, здесь большие и маленькие буквы - равны:

(A=a) < (А=а) < (B=b) < (E=e) < (К=к) < (Z=z) < (Я=я)

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

? Любой отдельный символ
* Ноли или более символов
# Любая цифра (0–9).
[charlist] Любой отдельный символ, попадающий в список charlist
[!charlist] Любой отдельный символ, непопадающий в список charlist

Здесь небольшое замечание. Для того чтобы проверить принадлежность строки на маске, содержащую спец. симолы (т.е. проверить, к примеру, есть ли в строке симолы [,?,#,],*), то нужно заключить из в квадратные скобки []. Просто так ставить отдельную скобку [ или ], нельзя.

При указании списка символов, можно использовать тире (–). Например, чтобы задать последовательность от A до Z, нужно использовать маску [A-Z]. Всё, что находится в скобках не должно содержать никаких разделителей (пробелов, запятых и т.д.), иначе они тоже будут включены в последовательность.

Есть и другие важные правила при проверки по маске:

bullet

(!) знак в начале списка символов говорит о том, что нужно искать символы, не входящие в этот список. Если вам необходимо найти сам знак !, то нужно поставить скобки [!].

bullet

(–) используется для задания диапазона символов.

bullet

Когда задаётся диапазон символов, то он должен быть возрастающим по ASCII кодам. Т.е. [A-Z] правильная маска, а [Z-A] нет.

bullet

Последовательность [] интерпретируется как пустая строка "".

Примеры:

Dim MyCheck
MyCheck = "aBBBa" Like "a*a" ' Возвратит True.
MyCheck = "F" Like "[A-Z]" ' Возвратит True.
MyCheck = "F" Like "[!A-Z]" ' Возвратит False.
MyCheck = "a2a" Like "a#a" ' Возвратит True.
MyCheck = "aM5b" Like "a[L-P]#[!c-e]" ' Возвратит True.
MyCheck = "BAT123khg" Like "B?T*" ' Возвратит True.
MyCheck = "CAT123khg" Like "B?T*" ' Возвратит False.

myString = "312T-87GD-8922"

If myString Like "###[A-Z]-##[A-Z][A-Z]-####" Then ...

Операторы конкатенации строк

Вообще-то, чтобы соединить строки в Visual Basic, можно использовать всего 2 оператора. Это & и +. Оператор + описан выше. Поговорим об операторе &.

 

Оператор конкатенации строк - &

Используется для конкатенации двух выражений.

Синтаксис:

результат = выражение1 & выражение2

результат обязателен; Любая String или Variant переменная
выражение1 обязательно; Любое выражение
выражение2 обязательно; Любое выражение

Замечания:

Если в выражение не строка, то она конвертируется в String Variant. Тип данных результата - String только тогда, когда оба выражения имеют тип String. Иначе результат String Variant. Если оба выражения Null, то результат тоже Null. Однако, если только одно из выражений содержит Null значение, то оно интерпретируется как пустая строка "". Empty также интерпретируется как пустая строка "".

Примеры:

Dim MyStr
MyStr = "Hello" & " World"
' Возвратит строку "Hello World".
MyStr = "ПроВерКА" & 123 & " ПроВерка"
' Возвратит строку "ПроВерКА 123 ПроВерка".

Логические операторы

Это самая интересная группа оператором. При программировании вы обязаны знать их работу и применение (причём не только на Visual Basic).

В Visual Basic их 6 штук. Рассмотрим каждый оператор подробно.

 

оператор And

Используется для совершения логичкого умножения над двумя выражениями.

Синтаксис:

результат = выражение1 And выражение2

результат обязателен; Любая числовая (включая Boolean) переменная
выражение1 обязательно; Любое выражение
выражение2 обязательно; Любое выражение

Замечания:

Следующая таблица показывает как работает оператор And:

Если выражение1 =

, а выражение2 =

То результат =

True

True

True

True

False

False

True

Null

Null

False

True

False

False

False

False

False

Null

False

Null

True

Null

Null

False

False

Null

Null

Null

Оператор And также используется для проверки битов числа. Для битов оператор And работает следующим образом (смотреть слева направо)

0 0 0
0 1 0
1 0 0
1 1 1

Результат выделен жирным шрифтом.

Примеры:

Dim A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Null
MyCheck = A > B And B > C ' Возвратит True.
MyCheck = B > A And B > C ' Возвратит False.
MyCheck = A > B And B > D ' Возвратит Null.
MyCheck = A And B ' Возвратит 8 (битовое сравнение).

Последний пример рассмотрим подробнее. Число 10 представляется в виде битов следущим образом (как тетрада, т.е. 4 бита):

1010

А число 8 вот так:

1000

В результате работы оператора And, согласно вышеприведённой таблице мы получим:

1000

Т.е. 8. Для чего мы это делали? Мы делали это для того, чтобы проверить, установлен ли четвёртый бит у числа A? Получив B, мы убедились в том, что этот бит установлен.

 

оператор Or

Используется для совершения логичкого сложения двух выражений.

Синтаксис:

результат = выражение1 Or выражение2

результат обязателен; Любая числовая (включая Boolean) переменная
выражение1 обязательно; Любое выражение
выражение2 обязательно; Любое выражение

Замечания:

Следующая таблица показывает как работает оператор Or:

Если выражение1 =

, а выражение2 =

То результат =

True

True

True

True

False

True

True

Null

True

False

True

True

False

False

False

False

Null

Null

Null

True

True

Null

False

Null

Null

Null

Null

Оператор Or используется для установки определённых битов числа. Для битов оператор Or работает следующим образом (смотреть слева направо)

0 0 0
0 1 1
1 0 1
1 1 1

Результат выделен жирным шрифтом.

Примеры:

Dim A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Null
MyCheck = A > B Or B > C ' Возвратит True.
MyCheck = B > A Or B > C ' Возвратит True.
MyCheck = A > B Or B > D ' Возвратит True.
MyCheck = B > D Or B > A ' Возвратит Null.
MyCheck = A Or 5 ' Возвратит 15:

Давайте последний пример рассмотрим подробнее. Число 10 представляется в виде битов следущим образом (как тетрада, т.е. 4 бита):

1010

А число 5:

0101

В результате работы оператора Or, согласно вышеприведённой таблице мы получим:

1111

Т.е. 15. Как видите, оператор Or очень легко и удобно использовать не только в выражениях сравнения, но и для установки определённых битов числа.

 

оператор Xor

Используется для совершения логичкого отрицания двух выражений.

Синтаксис:

результат = выражение1 Xor выражение2

результат обязателен; Любая числовая (включая Boolean) переменная
выражение1 обязательно; Любое выражение
выражение2 обязательно; Любое выражение

Замечания:

Следующая таблица показывает как работает оператор Xor:

Если выражение1 =

, а выражение2 =

То результат =

True

True

False

True

False

True

False

True

True

False

False

False

Оператор Xor используется для инвертирования определённых битов числа. Для битов оператор Xor работает следующим образом (смотреть слева направо)

0 0 0
0 1 1
1 0 1
1 1 0

Результат выделен жирным шрифтом. Xor отличается от Or, только тем, что когда оба бита единицы, Xor выдаёт 0. Оператор Xor интересен тем свойством, то при его двойном применении он выдаёт то же число. Это часто используют в криптографии.

Примеры:

Dim A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Null
MyCheck = A > B Xor B > C ' Возвратит False.
MyCheck = B > A Xor B > C ' Возвратит True.
MyCheck = B > A Xor C > B ' Возвратит False.
MyCheck = B > D Xor A > B ' Возвратит Null.
MyCheck = A Xor B ' Возвратит 2

Интересным примером использования оператора Xor является обмен значениями двух численных переменны:

Dim a As Long, b As Long
a = 4
b = 7
a = a Xor b
b = a Xor b
a = a Xor b

Теперь переменная a содержит значение переменной b, и наоборот.

 

оператор Not

Используется для совершения логичкого инвертирования двух выражений.

Синтаксис:

результат = Not выражение

результат обязателен; Любая числовая (включая Boolean) переменная
выражение обязательно; Любое выражение

Замечания:

Следующая таблица показывает как работает оператор Not:

Если выражение =

То результат =

True

False

False

True

Null

Null

Оператор Not инвертирует все биты выражения. Для битов оператор Not работает следующим образом (смотреть слева направо):

0 1
1 0

Результат выделен жирным шрифтом.

Примеры:

Dim A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Null
MyCheck = Not(A > B) ' Возвратит False.
MyCheck = Not(B > A) ' Возвратит True.
MyCheck = Not(C > D) ' Возвратит Null.
MyCheck = Not A ' Возвратит -11 (все биты инвертированы)

Рассмотрим подробнее последний пример. Число 10 представляется в виде битов следущим образом (как байт, т.е. 8 битов):

0000 1010

После инвертирования всех битов получим:

1111 0101

А это и есть -11.

 

оператор Eqv

Используется для совершения логической эквивалентности двух выражений.

Синтаксис:

результат = выражение1 Eqv выражение2

результат обязателен; Любая числовая (включая Boolean) переменная
выражение1 обязательно; Любое выражение
выражение2 обязательно; Любое выражение

Замечания:

Следующая таблица показывает как работает оператор Eqv:

Если выражение1 =

, а выражение2 =

То результат =

True

True

True

True

False

False

False

True

False

False

False

True

Для битов оператор Eqv работает следующим образом (смотреть слева направо)

0 0 1
0 1 0
1 0 0
1 1 1

Примеры:

Dim A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Null
MyCheck = A > B Eqv B > C ' Возвратит True.
MyCheck = B > A Eqv B > C ' Возвратит False.
MyCheck = A > B Eqv B > D ' Возвратит Null.
MyCheck = A Eqv B ' Возвратит -3

 

оператор Imp

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

Синтаксис:

результат = выражение1 Imp выражение2

результат обязателен; Любая числовая (включая Boolean) переменная
выражение1 обязательно; Любое выражение
выражение2 обязательно; Любое выражение

Замечания:

Следующая таблица показывает как работает оператор Imp:

Если выражение1 =

, а выражение2 =

То результат =

True

True

True

True

False

False

True

Null

Null

False

True

True

False

False

True

False

Null

True

Null

True

True

Null

False

Null

Null

Null

Null

Для битов оператор Imp работает следующим образом (смотреть слева направо)

0 0 1
0 1 1
1 0 0
1 1 1

Примеры:

Dim A, B, C, D, MyCheck
A = 10: B = 8: C = 6: D = Null
MyCheck = A > B Imp B > C ' Возвратит True.
MyCheck = A > B Imp C > B ' Возвратит False.
MyCheck = B > A Imp C > B ' Возвратит True.
MyCheck = B > A Imp C > D ' Возвратит True.
MyCheck = C > D Imp B > A ' Возвратит Null.
MyCheck = B Imp A ' Возвратит -1

 

Вернутся на главную   Вернутся на предыдущую.
Rambler's Top100   

 

Сайт управляется системой uCoz