if(!statement)和if(statement!= true)之间的区别?

时间:2016-01-11 16:53:03

标签: java android

我有一些案例,其中第一个似乎改变了布尔值,第二个没有!这两者之间是否存在真正的区别:

boolean x = true;

if (x != true) {}
if (!x) {}

3 个答案:

答案 0 :(得分:1)

不,没有。

虽然某些人认为第二个成语更优雅(不那么繁琐和冗长)。

有一个问题!

!=运算符用于对象引用相等,因此在包含Boolean s而不是基元的边缘情况下...

Boolean b0 = new Boolean("true"); // value true
Boolean b1 = new Boolean("true"); // value true as well
System.out.println(!b0); // prints false
System.out.println(!b1); // prints false too
System.out.println(b0 != b1); // references not equal, prints true!

<强>输出

true

答案 1 :(得分:0)

两个句子之间没有区别。 x != true等于!x

如果将布尔变量与相等比较器进行比较,则可能会引入错误。例子:

if (x == false) {} // executes the "if" body when "x" is false

if (!x) {} // same of previous example, executes the "if" body when "x" is false

if (x = false) {} // assign the "false" value to x, and never executes the "if" body

最后一个例子使用单个&#34; =&#34;字符,并分配一个值。第一个例子使用两个&#34; =&#34;字符,并比较两个值而不指定任何内容。

答案 2 :(得分:0)

在java !=表示不相等,!表示不是这样:

 x != ture // X not equal true (x = false)

 !x // Not x (x = true, not x = false)

所以他们是平等的。