我不明白为什么这个代码返回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);