数学VS逻辑运算符优先级

时间:2012-09-03 23:23:00

标签: programming-languages logical-operators

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

含义:为什么x / y * z评估为( x / y ) * z,以便/具有与*相同的优先级,但在逻辑运算符x || y && z中将评估为{{} 1}} 那么,是否存在这种区别的逻辑原因(一些硬件原因,优化技术)还是仅仅是编程语言创建者决定制作它们的方式?

2 个答案:

答案 0 :(得分:3)

这不是关于编程。曾经使用布尔代数? AND也优先于OR,而布尔代数来自17世纪(虽然我不知道这个约定何时出现)。这两个也写成*和+,这提供了这方面的线索(但在其他方面可能会混淆)。

编程语言设计者只是执行了这些优先级规则,就像它们优先于算术运算符一样。

答案 1 :(得分:0)

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

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

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

还要记住! (不是)优先于&& (AND)