我正在查看一些模拟OCJP问题。我遇到了一个非常令人困惑的语法。这里是: class OddStuff { public static void main(String[] args) { boolean b = false; System.out.println((b != b));// False System.out.println((b =! b));// True } } 为什么输出在!=和之间变化=!?
问题只是与您混淆间距。
b != b
是通常的!=
(不等于)比较。另一方面:
b =! b
最好写成b = !b
解析为:因此它是两个运算符。
b
。b
.赋值运算符返回分配的值。因此,
(b =! b)
评估为 true - 这就是您打印出来的内容。