为什么c=!如果c是布尔假,则c为真?
我不明白为什么这段代码返回 true:
boolean c = false;
c =! c;
不是将 false boolean 与 false boolean 进行比较吗?或者它可能将“NOT false”分配给 c,这是真的?
回答
c =! c(作为等效项更具可读性c = !c)正在分配cto的否定c。此赋值的值是 的新值c,可能是trueifc原来的值false。
如果你想比较c到!c,它应该是c != c。
回答
c =! c; 表示“将其当前值的补数分配给 c”。
如果其当前值为假,则其值变为真。
也许你的意思是c != c,无论c是真还是假,这都是假的。
但是,请注意,您不能写,c != c;因为这不是有效的语句:您需要以某种方式使用表达式,例如
System.out.println(c != c);