boolean flag = false;
if(!flag) System.out.println(!flag); // prints true
なぜそれが他の場所に渡された条件付きパラメーターであると見なされるのだろ!flagうか?falseif statementtrue
boolean flag = false;
if(!flag) System.out.println(!flag); // prints true
なぜそれが他の場所に渡された条件付きパラメーターであると見なされるのだろ!flagうか?falseif statementtrue
そうではありません。if (boolean expression) { statement }「iftrueを実行する」という意味statementですboolean expression。以来flag = false、!flag == true。いつも。
!flagwhere flagisは、ifステートメントを含むすべてのコンテキストでfalse評価されます。true
さて、あなたはおそらく条件演算子の評価を誤解しているでしょう。if条件がと評価された場合に限り、演算子は内部でステートメントを実行しますtrue。
Now, flag is equal to false. This means that negation of flag will be true (!false = true). This is why tne statement inside the if confition is performed and writes true (the negated value of flag) to your console output.
!flagの値は変更せず、評価flag時に無効にするだけです。
、はflag = false、!flagと同じ!falseですtrue。
あなたのコードはこれと同等です:
if (!false) System.out.println(!false);
これは次と同等です:
if (true) System.out.println(true);
人間の言語で:
フラグが真でない場合は、「フラグ」の反対の値を出力します