Логические операции
Логическое отрицание НЕ(!)
Операнд операции логического отрицания НЕ(!) должен иметь арифметический тип. Результат равен ИСТИНА(1), если значение операнда есть ЛОЖЬ(0), и равен ЛОЖЬ(0), если операнд не равен ЛОЖЬ(0).
Логическая операция ИЛИ (||)
Логическая операция ИЛИ (||) значений x и y. Значением выражения является ИСТИНА(1), если истинно (не нуль) значение x или y. В противном случае - ЛОЖЬ(0).
if(x<0 || x>=max_bars) Print("out of range"); |
Логическая операция И (&&)
Логическая операция И (&&) значений x и y. Значением выражения является ИСТИНА(1), если значения x и y истинны (не нуль). В противном случае - ЛОЖЬ(0).
Короткая оценка логических операций
К логическим выражениям применяется схема так называемой "короткой оценки", то есть, вычисление выражения прекращается в тот момент, когда можно точно оценить результат выражения.
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- первый пример короткой оценки
if(func_false() && func_true())
{
Print("Операция &&: Это сообщение вы никогда не увидите");
}
else
{
Print("Операция &&: Результат первого выражения false, поэтому второе выражение не вычислялось");
}
//--- второй пример короткой оценки
if(!func_false() || !func_true())
{
Print("Операция ||: Результат первого выражения true, поэтому второе выражение не вычислялось");
}
else
{
Print("Операция ||: Это сообщение вы никогда не увидите");
}
}
//+------------------------------------------------------------------+
//| функция всегда возвращает false |
//+------------------------------------------------------------------+
bool func_false()
{
Print("Функция func_false()");
return(false);
}
//+------------------------------------------------------------------+
//| функция всегда возвращает true |
//+------------------------------------------------------------------+
bool func_true()
{
Print("Функция func_true()");
return(true);
} |
Смотри также
Приоритеты и порядок операций
|