!= 和 =! 有什么区别?在爪哇?[复制]

IT小君   2021-12-06T02:01:15

我正在查看一些模拟OCJP问题。我遇到了一个非常令人困惑的语法。这里是:

class OddStuff {
    public static void main(String[] args) {
        boolean b = false;
        System.out.println((b != b));// False
        System.out.println((b =! b));// True
    }
}

为什么输出在!=之间变化=!

评论(4)
IT小君

问题只是与您混淆间距。

b != b是通常的!=(不等于)比较。

另一方面:

b =! b最好写成b = !b解析为:

b = (!b)

因此它是两个运算符。

  1. 首先反转b
  2. 然后将其分配回b.

赋值运算符返回分配的值。因此,(b =! b)评估为 true - 这就是您打印出来的内容。

2021-12-06T02:01:16   回复
IT小君

b != b意思是! (b == b):的反义词b == b

b =! b实际上是b = !b一个作业。这是 togglingb的值。赋值计算为表达式的值,因此这将计算为!b(以及更改了 的值b)。

2021-12-06T02:01:16   回复
IT小君

b=!b是一个任务。它分配b!b并且表达式计算为结果值,即true

2021-12-06T02:01:16   回复
IT小君

乙 =!

你在做一个作业,你是说 B 应该有 !B 的值。

b != b

你在问 B 是否不同于 b

2021-12-06T02:01:16   回复