没有人知道为什么:逻辑OR运算符VS位或运算符
if (false && true || true) {
System.out.println("True");
} else {
System.out.println("False");
}
打印 “真”
if (false && true | true) {
System.out.println("True");
} else {
System.out.println("False");
}
“假”
科林在这里得到了一个正确的答案,这个答案像疯了一样沮丧。我不想要相同的命运,所以我会将它作为评论发布:&和|在一个布尔上下文中不是按位运算符,而是渴望的布尔运算符(没有短路,双方都将被评估)。看到这个:http://en.wikipedia.org/wiki/Short-circuit_evaluation#Support_in_common_programming_languages – 2010-09-13 08:31:24
但奇怪的是,我无法找到任何太阳官方文件在哪里|和&被引用为逻辑运算符(但它是SCJP6考试的一部分) – 2010-09-13 08:35:49
@seanizer:这里仍然有一个正确的答案。 (实际上其中两个):-)无论它们是否按位进行布尔运算都不是真正的重点*这里*,无论如何,“|”都是更高的优先级,这就是为什么OP会看到他/她在问。 – 2010-09-13 08:57:48