7

我想确认!=控制语句中布尔表达式之前的含义是相反的:

例如:

if (!networkConnected()) 

这是否意味着“如果网络未连接”?

4

6 回答 6

19

是的,这确实意味着逻辑上的相反。它甚至适用于等于运算符。

假设你的方法返回一个基本的 bool 类型

// means the Network is NOT connected
if (!NetworkConnected()) 

这相当于

if (NetworkConnected() != true) 

所以逻辑上意味着

if (NetworkConnected() == false) 

现在假设您的方法返回一个布尔值(实际上是一个真实的对象),这意味着

// means the Network is NOT connected
if (! Boolean.TRUE.equals(NetworkConnected());

或者

if (Boolean.FALSE.equals(NetworkConnected());
于 2012-08-05T13:00:06.433 回答
11

是的,这是布尔否定

所以

true == true
!true == false
!!true == true
!!!true == false

同样与 false

!false == true

这个一元运算符的实际名称是Logical Complement Operator反转布尔值的

于 2012-08-05T12:35:11.870 回答
0

是的。感叹号否定出现在它旁边的布尔值。

于 2012-08-05T12:35:09.030 回答
0

准确回答您的问题:。这个运算符!=不是否定的。它意味着NOT IDENTICAL并且与它的对立面==代表身份。

于 2016-05-04T10:41:42.130 回答
0

!是切换表达式的布尔值的一元运算符。

考虑以下代码:

boolean b = true;

System.out.println(!b); // outputs: false
System.out.println(!!b); // outputs: true

b = !b; // first switch: b is false now
b = !b; // second switch: b is true now

所以:

这是否意味着“如果网络未连接”?

是的!

于 2016-05-04T11:31:28.090 回答
-2

在java中,感叹号(!)用于反转值,也称为布尔否定运算符(!=等于)。

例子:if(string variable!=null) 这里检查string variable是否为null。null表示block没有被执行,否则会被执行。

于 2015-08-19T09:15:07.163 回答