-1

为什么在大多数编程语言中,数学运算符的优先级与逻辑运算符的优先级不同。

含义:为什么x / y * z计算结果与逻辑运算( x / y ) * z/具有相同的优先级*但是在逻辑运算符x || y && z中计算结果是x || ( y && z ) 所以,这种区别是否存在逻辑原因(某些硬件原因,优化技术),或者它只是编程语言创建者决定的方式他们??

4

2 回答 2

3

这与编程无关。曾经使用过布尔代数吗?AND 也优先于 OR,布尔代数来自 17 世纪(尽管我不知道这个约定是什么时候形成的)。两者也写为 * 和 +,这提供了这方面的线索(但在其他方面可能会混淆)。

编程语言设计者只是继承了这些优先规则,就像他们继承了算术运算符的优先级一样。

于 2012-09-04T17:02:35.220 回答
0

可能正是编程语言创建者决定制作它们的方式。

更具体地说,在缺少括号的情况下,程序员可能希望在 OR 之前评估 AND 语句。

换句话说|| 更像是“从左到右的加法或减法”,而 && 更像是“从左到右的乘除法”

还记得!(not) 的优先级甚至高于 && (AND)

于 2012-09-03T23:30:14.877 回答