!flag在java中有两个含义?

时间:2011-07-12 01:14:29

标签: java if-statement not-operator

boolean flag = false;
if(!flag) System.out.println(!flag); // prints true

我想知道为什么!flag被视为false时,条件参数传递给if statement而其他地方传递给true

5 个答案:

答案 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语句并将trueflag的否定值)写入控制台输出的原因。

答案 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”

的相反值