我想确认!=控制语句中布尔表达式之前的含义是否相反:
例如:
if (!networkConnected())
Run Code Online (Sandbox Code Playgroud)
这是否意味着"如果网络没有连接"?
Jea*_*evy 15
是的,它确实意味着逻辑相反.它甚至可以与equals运算符一起使用.
假设你的方法返回一个基本的bool类型
// means the Network is NOT connected
if (!NetworkConnected())
Run Code Online (Sandbox Code Playgroud)
这相当于
if (NetworkConnected() != true)
Run Code Online (Sandbox Code Playgroud)
所以逻辑意味着
if (NetworkConnected() == false)
Run Code Online (Sandbox Code Playgroud)
现在假设你的方法返回一个布尔值(实际上是一个真实的对象),这意味着
// means the Network is NOT connected
if (! Boolean.TRUE.equals(NetworkConnected());
Run Code Online (Sandbox Code Playgroud)
要么
if (Boolean.FALSE.equals(NetworkConnected());
Run Code Online (Sandbox Code Playgroud)
Ala*_*ter 11
是的,这是布尔否定
所以
true == true
!true == false
!!true == true
!!!true == false
Run Code Online (Sandbox Code Playgroud)
同样是假的
!false == true
Run Code Online (Sandbox Code Playgroud)
这个一元运算符的实际名称是Logical Complement Operator反转布尔值的值
| 归档时间: |
|
| 查看次数: |
45733 次 |
| 最近记录: |