布尔运算
否定运算符 (!)
否定运算符(!),用来表示真假的反面的结果。如果运算值是 FALSE (0)结果为TRUE (1);如果运算不同于FALSE (0)等于FALSE (0)。
逻辑运算符或 OR (||)
x和y值的逻辑运算符或OR(||)用来表示两个表达式只要有一个成立即可。如果x和y值为真的,表达式值为TRUE (1)。否则,值为FALSE (0)。
if(x<0 || x>=max_bars) Print("超出范围");
|
逻辑运算符 AND (&&)
x和y值的逻辑运算符 AND (&&). 如果x和y值为真的(not null),表达式值为TRUE (1)。否则,值为FALSE (0)。
布尔运算的摘要评估
所谓的“摘要评估”模式是应用到布尔型操作系统中的, i.e.当表达式可以被精确的终止时,该表达计算就会停止。
//+------------------------------------------------------------------+
//| 脚本程序启动函数 |
//+------------------------------------------------------------------+
void OnStart()
{
//--- 简单判断的第一示例
if(func_false() && func_true())
{
Print("Operation &&: You will never see this expression");
}
else
{
Print("Operation &&: Result of the first expression is false, so the second wasn't calculated");
}
//--- 简单判断的第二示例
if(!func_false() || !func_true())
{
Print("Operation ||: Result of the first expression is true, so the second wasn't calculated");
}
else
{
Print("Operation ||: You will never see this expression");
}
}
//+------------------------------------------------------------------+
//| 函数总是返回false |
//+------------------------------------------------------------------+
bool func_false()
{
Print("Function func_false()");
return(false);
}
//+------------------------------------------------------------------+
//| 函数总是返回 true |
//+------------------------------------------------------------------+
bool func_true()
{
Print("Function func_true()");
return(true);
}
|
另见
优先规则