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

Java 为什么是c=!如果c是布尔值false,那么c是true?,java,boolean,boolean-logic,Java,Boolean,Boolean Logic,我不明白为什么这段代码返回true: boolean c = false; c =! c; 它不是在比较假布尔值和假布尔值吗?或者可能是将“notfalse”赋值给c,这是真的?c=!c(当等价的c=!c时可读性更高)将c的否定赋值给c。此赋值的值是c的新值,如果c最初为false,则该值可能为true 如果要将c与进行比较!c,应该是c!=cc=!c表示“将其当前值的补码赋给c” 如果其当前值为false,则其值变为true 也许你的意思是c!=c,无论c是真是假,它都是假 但是,请注意

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

boolean c = false;
 
c =! c;
它不是在比较假布尔值和假布尔值吗?或者可能是将“notfalse”赋值给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);

或者可能是将“notfalse”赋值给c,哪个是真的!我不知道为什么人们会否决这样的问题?每个人都得从某个地方开始。这家伙只需要解释一下这里发生了什么。他可能是编程新手!