提问人:RadioTune 提问时间:4/5/2021 更新时间:4/5/2021 访问量:85
为什么 c =!如果 c 是布尔值,c 是 true,则为 false?[已结束]
Why c =! c is true if c is boolean false? [closed]
问:
我不明白为什么这段代码返回 true:
boolean c = false;
c =! c;
这不是在比较假布尔值和假布尔值吗?或者也许它正在为 c 分配“NOT false”,这是真的?
答:
6赞
Eran
4/5/2021
#1
c =! c
(作为等价物更具可读性)是将 的否定分配给 。此赋值的值是 的新值,如果最初是 。c = !c
c
c
c
true
c
false
如果要比较 ,它应该是 。c
!c
c != c
5赞
Andy Turner
4/5/2021
#2
c =! c;
意思是“将当前值的补码分配给 C”。
如果其当前值为 false,则其值变为 true。
也许你的意思是,无论真假,这都是假的。c != c
c
但是,请注意,你不能写,因为这不是一个有效的语句:你需要以某种方式使用表达式,例如c != c;
System.out.println(c != c);
评论