【问题标题】:IDE indicates that my if else statement is redundant and I need an explanation to whyIDE 表明我的 if else 语句是多余的,我需要解释原因
【发布时间】:2016-09-29 13:39:53
【问题描述】:

我是编程初学者。 Netbeans IDE 表明以下 if-else 语句是多余的:

public boolean x = false;

private void add_labelMouseClicked(java.awt.event.MouseEvent evt) {                                       

    jPanel2.setVisible(x);
        if(x==false){
            x=true;
        }else
            x=false;
}         

如果我使用 IDE 更正这个 if-else 语句,它会将代码变成这样:

public boolean x = false;

private void add_labelMouseClicked(java.awt.event.MouseEvent evt) {                                       

    jPanel2.setVisible(x);
       x = x == false;
} 

我需要对第二个代码进行简单的解释,以及它为什么与第一个代码具有相似的功能。

编辑:感谢大家详细解释,我现在真的明白了,我今天学到了一些新东西,感谢大家的回复。 (后来我觉得很愚蠢哈哈)

【问题讨论】:

  • 老实说,最好使用x = !x;...但是看看第二段代码 - 它正在评估x == false,并将其用作@987654325的新值@.
  • 我仍然对第二个代码感到困惑,我使用的是 if-else 语句,结果如何,因为我没有看到任何将布尔值设置为 true 的东西。
  • 如果x 当前为真,x == false 的结果是什么?如果x 当前为假,结果如何?
  • 谢谢兄弟,不知何故,最后的评论让我理解了逻辑。
  • 如果他们对您有帮助,请在下方标记正确答案。或者你也可以投票。回馈帮助过你的人:-)

标签: java if-statement boolean


【解决方案1】:

只需阅读第二个。

这部分很好很简单 - 设置 x

x = 

正在设置的下一部分

x == false

它正在评估 x 并检查它是否为假,如果它为假,则将 x 设置为真,否则将 x 设置为假。

既然你基本上否定 x,你可以使用

x = !x

这只会在真假之间翻转 x

【讨论】:

  • 我还是一头雾水:(
  • 让我们将值放入 x 中,看看我们得到了什么。如果 x = false (false == false) = true 并且 (true == false) = false,则这些是您在 if 语句中设置的值
  • 实际上,在阅读了所有回复之后,这才有意义!谢谢!
【解决方案2】:
x = x == false;

解释

如果 x 为假,x == false 为真,因此 x 为真

如果 x 为真,x == false 变为假,因此 x 变为假

x == false是一个条件操作符,由于==的存在,就像if-condition一样,返回true或者false的值

== 是相等检查条件运算符,并返回真或假值,如答案中所述。这个返回值被赋值给 x。

您也可以使用x = !x 来编写更简单的代码

【讨论】:

  • 是的,它是一个条件运算符。 == 是相等检查条件运算符,并返回真或假值,如答案中所述。这个返回值被分配给 x。而且,这两个代码都在做同样的事情。
猜你喜欢
  • 2015-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 2017-10-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多