答案 0 :(得分:7)
这是一个按位“或”加号,所以你的假设是完全正确的。
答案 1 :(得分:4)
是的,这是一个包含性或分配:http://www.cafeaulait.org/course/week2/03.html
答案 2 :(得分:3)
更准确地说,x | = y实际上计算为x = x | (Y)。
这是一个有趣的例子,说明为什么这很重要。
int c = 2;
c %= c++ * ++c;
这里有趣的结果是它会写成
c = c % (c++ * ++c);
Java规范告诉我们JVM将首先看到初始c并存储它,它之前的任何内容都不会对它产生任何影响,因此c ++& ++ c实际上不会影响计算的结果。它总是c = 2%,等于2:)
答案 3 :(得分:2)