boolean flag = false;
if(!flag) System.out.println(!flag); // prints true
なぜそれが他の場所に渡された条件付きパラメーターであると見なされるのだろ!flag
うか?false
if statement
true
boolean flag = false;
if(!flag) System.out.println(!flag); // prints true
なぜそれが他の場所に渡された条件付きパラメーターであると見なされるのだろ!flag
うか?false
if statement
true
そうではありません。if (boolean expression) { statement }
「iftrueを実行する」という意味statement
ですboolean expression
。以来flag = false
、!flag == true
。いつも。
!flag
where flag
isは、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);
人間の言語で:
フラグが真でない場合は、「フラグ」の反対の値を出力します