为什么c=!如果c是布尔值false,那么c是true



我不明白为什么这个代码返回true:

boolean c = false;

c =! c;

它不是在比较假布尔值和假布尔值吗?或者可能是分配";NOT false";对于c,哪个是真的?

c =! c(作为等价的c = !c更可读(正在将c的否定赋值给c。该赋值的值是c的新值,如果c最初是false,则该值可以是true

如果要比较c!c,则应为c != c

c =! c;的意思是";将其当前值的补码分配给c";。

如果其当前值为false,则其值变为true。

也许你指的是c != c,无论c是真是假,它都是假的。

但是,请注意,您不能编写c != c;,因为这不是一个有效的语句:您需要以某种方式使用表达式,例如

System.out.println(c != c);

最新更新