!= 和 = 之间有什么区别!在爪哇?

2022-08-31 16:51:30

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

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

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


答案 1

问题只是用令人困惑的间距与你一起玩。

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

另一方面:

b =! b写得更好,解析为:b = !b

b = (!b)

因此,它是两个运算符。

  1. 第一次反转 。b
  2. 然后将其重新分配给 。b

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


答案 2

b != b均值:与 相反。! (b == b)b == b

b =! b实际上是,一个赋值。它正在切换 的值。赋值的计算结果为表达式的值,因此计算结果为 (以及已更改 的值)。b = !bb!bb