boolean flag = false;
if(!flag) System.out.println(!flag); // prints true
我想知道为什么!flag
被视为false
时,条件参数传递给if statement
而其他地方传递给true
?
答案 0 :(得分:6)
不是。 if (boolean expression) { statement }
表示“如果statement
为真,则执行boolean expression
”。自flag = false
,!flag == true
以来。总是
答案 1 :(得分:2)
!flag
其中flag
false
在所有情境中评估为true
,包括if语句。
答案 2 :(得分:2)
好吧,你可能会错误地解释条件运算符的评估。当且仅当条件被评估为if
时,true
运算符才会执行内部语句。
现在,flag
等于false
。这意味着flag
的否定将为true
(!false = true
)。这就是执行if confition中的tne语句并将true
(flag
的否定值)写入控制台输出的原因。
答案 3 :(得分:2)
!flag
不更改 flag
的值,它只是在评估时否定它。
自flag = false
以来,!flag
与!false
true
相同。
您的代码等同于:
if (!false) System.out.println(!false);
相当于:
if (true) System.out.println(true);
答案 4 :(得分:0)
:
如果flag不为true,则打印出“flag”
的相反值