!=和=有什么区别! 在Java中?
我正在查看一些模拟的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这被parsing为:
b = (!b)
因此,这是两个运营商。
- 首先倒置
b。 - 然后将其分配给
b。
赋值运算符返回分配的值。 因此, (b =! b)计算结果为真 – 这就是你打印的内容。
b != b意思是! (b == b) ! (b == b) :与b == b相反。
b =! b b =! b实际上是b = !b ,一个赋值。 这是切换b的价值。 赋值评估为expression式的值,所以这将评估为!b (同时已经改变了b的值)。
b=!b是一项任务。 它将b赋值给!b ,expression式求值为结果值,这是true 。
b =! b
你正在做一个任务,你是说B应该有!B的价值。
b!= b
你在问B是不是和B不一样