home

Операции отношения

Как мы уже знаем, один из стандартных типов переменных в языке MetaQuotes Language 4 — тип bool. Переменная типа bool может принимать только два значения: ИСТИНА (true) и ЛОЖЬ (false). Значение ЛОЖЬ представляется в виде нулевого значения, а ИСТИНА — ненулевого.

Значение операции отношения или логической операции будет иметь тип bool.

Операции отношения

Операция Результат
a == b Истина, если a равно b
Ложь, если a не равно b
a != b Истина, если a не равно b
Ложь, если a равно b
a < b Истина, если a меньше b
Ложь, если a больше или равно b
a <= b Истина, если a меньше или равно b
Ложь, если a больше b
a > b Истина, если a больше b
Ложь, если a меньше или равно b
a >= b Истина, если a больше или равно b
Ложь, если a меньше b

Примечание: в связи с тем, что числа с плавающей точкой (тип double) не могут быть представлены точно в связи с ограниченным количеством значащих цифр после запятой (в MetaQuotes Language 4 точность — 15 значащих цифр), нельзя производить сравнение таких чисел на равенство (==) или неравенство (!=) без предварительной нормализации (о нормализации вещественных чисел я расскажу в следующих выпусках).

Логические операции

Напомню, что значение ЛОЖЬ (false) представляется в виде нулевого значения, а ИСТИНА (true) — ненулевого.

В этом выпуске я рассмотрю логические операции НЕ (!), ИЛИ (||) и И (&&).


Логическое отрицание НЕ (!)

Операнд A Значение выражения !A
ИСТИНА (true) ЛОЖЬ (false)
ЛОЖЬ (false) ИСТИНА (true)


Пример:

 

 bool b;
b = false; // переменная b равна false (ЛОЖЬ)
b = !b; // переменная b равна true (ИСТИНА)
b = !b; // переменная b равна false (ЛОЖЬ)



 


Логическая операция ИЛИ (||)

Результат логической операции ИЛИ равен true, если хотя бы один из операндов равен true. Если оба операнда равны false, то и результат логического ИЛИ также будет равен false.

Операнд A Операнд B Значение выражения A || B
ЛОЖЬ (false) ЛОЖЬ (false) ЛОЖЬ (false)
ЛОЖЬ (false) ИСТИНА (true) ИСТИНА (true)
ИСТИНА (true) ЛОЖЬ (false) ИСТИНА (true)
ИСТИНА (true) ИСТИНА (true) ИСТИНА (true)

Пример:

 

 bool a = true; // a равно true
bool b = false; // b равно false
b = b || a; // b равно true


 


Логическая операция И (&&)

Результат операции логического И будет равен true только в случае, если оба операнда равны true. Во всех иных случаях результат операции будет равен false.

Операнд A Операнд B Значение выражения A && B
ЛОЖЬ (false) ЛОЖЬ (false) ЛОЖЬ (false)
ЛОЖЬ (false) ИСТИНА (true) ЛОЖЬ (false)
ИСТИНА (true) ЛОЖЬ (false) ЛОЖЬ (false)
ИСТИНА (true) ИСТИНА (true) ИСТИНА (true)

Пример:

 

 bool a = true; // a равно true
bool b = false; // b равно false
b = b && a; // b равно false