Операции отношения
Как мы уже знаем, один из стандартных типов переменных в языке 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