【问题标题】:Why c =! c is true if c is boolean false? [closed]为什么c =!如果 c 为布尔假,c 为真? [关闭]
【发布时间】:2021-07-01 05:37:23
【问题描述】:

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

boolean c = false;
 
c =! c;

不是比较假布尔值和假布尔值吗?或者它给c赋值“NOT false”,这是真的吗?

【问题讨论】:

  • “或者它可能将“NOT false”分配给c,这是真的吗?没错!
  • 我不知道为什么人们会否决这样的问题?每个人都必须从某个地方开始。这家伙只需要解释这里发生的事情。他可能是编程新手!

标签: java boolean boolean-logic


【解决方案1】:

c =! c(与等价的c = !c 一样更具可读性)将c 的否定分配给c。这个赋值的值是c 的新值,如果c 原来是false,它可能是true

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

【讨论】:

    【解决方案2】:

    c =! c; 表示“将其当前值的补码赋给 c”。

    如果其当前值为假,则其值为真。

    也许你的意思是c != c,不管c是真还是假,它都是假的。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-11
      • 2012-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-28
      相关资源
      最近更新 更多