一个真正惊人的结果!!!。 - 页 2

 

请参考文件《优先权和操作顺序》。

表中的每组操作都有相同的优先级。一组操作的优先级越高,它在表中的位置就越高。执行的顺序决定了操作和操作数的分组。

() 函数调用从左到右
[] 阵列元素选择
!      逻辑否定法 从右到左
- 标志变更
++ 增加一个(增量)。
--减少一个(递减)。
~ 位数的否定(补)。
& 位数和操作 从左到右
| 位智或
位数排他性OR(eXclude OR)。
<< 左移
>> 向右移动
* 从左到右的乘法
/ 分裂
% 模数除法
+ 从左到右的加法
- 减法
<= 小于从左到右
<= 小于或等于
>= 大于
>= 大于或等于
==平等
!= 不等于
|| OR逻辑运算 从左到右
&& 布尔运算 AND 从左到右
==分配从右到左
+= 加法和赋值
=有赋值的减法
*= 与赋值相乘
/= 有赋值的除法
%= 带有赋值的模数除法
>>= 有赋值的右移
<<=带赋值的左移
&=分配的位数和
|= 位数OR和赋值
^= 排除有赋值的OR
逗号 从左到右

圆括号用于改变操作的执行顺序,具有最高的优先级。


注意: MQL4中操作的优先级与C语言中略有不同。


所以这是真的


 

大笑


如果你懒得检查,就用C语言编译,从运行开始。


编译器是百分之百的GLUCK。

 

哦,天空!

和故障是在C,我们认为....。为什么地球上会出现危机。

 

你要活到老,学到老。我一直认为,你先执行AND,然后再执行OR。有了这种认识,所有的方案都运作良好。甚至是非常复杂的逻辑组合。

但在这里...

不,你最好不要看论坛。他们混淆了一切。

程序运行良好....现在他们会出现故障......:))))))))

 
Rosh,哇,这是对的......在数学或其他语言中没有这回事,但在MQL4中却是真的?那么这就是开发人员大脑中的一个故障 :)对不起...
 
rid >> :

一点也不!这里 "或"(||)优先--明确无误!

如果没有括号,那么||将首先被执行,然后是&&。

这就是为什么括号必须放在适当的地方。


然而......。

   bool a = false, 
      b = true, 
      c = false;
   
   bool res = a || b && c;
   Print( res);               // 1 !
罐头
 
...和这里...只要放上括号,放上括号,放上括号,先生们!没问题。而且该方案将更容易理解。从来没有人承诺过MQL4=C++/。
 
有一个标准,它必须被遵守。如果开发者产生了他们自己的标准,与普遍接受的标准相抵触,那么...污垢是...垃圾。
 

在matcad中检查了第一个帖子。答案是1 0 1 1

以下是代码

 

说实话,我从来没有记住过逻辑和位操作的优先级。由于天生的懒惰,我只是把括号放在正确的地方。

"有很多,朋友Horace...."