1. ホーム
  2. java

[解決済み] Javaにおける「!=」と「=!」の違いは何ですか?[重複しています]。

2022-02-14 19:30:38

質問

いくつかのモックに目を通したところ 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)

したがって、2つの演算子である。

  1. 1回目の反転 b .
  2. 次に、それを再び b .

代入演算子は、代入された値を返します。したがって (b =! b) はtrueと評価され、これがプリントアウトされます。