感叹号在Java中是什么意思?

新手上路,请多包涵

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

例如:

 if (!networkConnected())

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

原文由 TheBlueCat 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 971
2 个回答

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

假设你的方法返回一个基本的 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());

原文由 Jean-Rémy Revy 发布,翻译遵循 CC BY-SA 3.0 许可协议

是的,它是布尔否定

所以

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

同样与假

!false == true

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

原文由 AlanFoster 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题