【发布时间】:2014-10-10 03:29:25
【问题描述】:
& 和 | 运算符的优先级如何绑定到 && 和 || 的优先级?我正在阅读 15.22
位运算符和逻辑运算符包括 AND 运算符 &、异或运算符 ^ 和异或运算符 |。
[...]
这些运算符的优先级不同,其中 & 的优先级最高 优先级和 |最低优先级。
但是在相应的子句中提到了&& 和|| 的优先级。例如,让我有条件:
boolean a = true;
boolean b = false
boolean c = true;
if ( a && b | c || b){
//to do something
}
你能用例子解释一下前面的内容吗? 我想看看标准中的参考资料。
【问题讨论】:
-
这不清楚。 are ~1 billion webpages 上面有 Java 运算符优先级表;有什么问题?
-
@OliCharlesworth 这个问题是正式的解释,仅使用 JLS。
-
所以你不想要“一个例子”?无论如何,JLS 给出的语法定义暗示了优先级。 (“ExclusiveOrExpression:ExclusiveOrExpression ^ AndExpression”等等……)
-
不是您问题的直接答案,但不要根据优先规则编写代码。编写可读的代码,用括号括起来显示您的意图的操作。老实说,我不记得任何语言的所有规则,我发现不使用括号的代码令人沮丧(如果不是可怕的话)。
-
+1,对于这个问题,因为仅从 JLS 中获取这些信息非常困难(尽管这对大多数程序员没有实际意义,除了那些正在编写编译器的人...... )
标签: java language-lawyer bitwise-operators