我正在寻找一些模拟的OCJP问题.我遇到了一个非常莫名其妙的语法.这里是:
class OddStuff {
public static void main(String[] args) {
boolean b = false;
System.out.println((b != b));// False
System.out.println((b =! b));// True
}
}
Run Code Online (Sandbox Code Playgroud)
为什么输出在!=和之间变化=!?
Mys*_*ial 113
问题是只是与你混淆空间.
b != b是通常的!=(不等于)比较.
另一方面:
b =! b写得更好,因为b = !b它被解析为:
b = (!b)
Run Code Online (Sandbox Code Playgroud)
因此它是两个运营商.
b.b.赋值运算符返回指定的值.因此,(b =! b)评估为true - 这是您打印出来的.
Cla*_*diu 10
b != b意思是! (b == b):相反的b == b.
b =! b实际上是b = !b一项任务.这是切换b的价值.赋值计算表达式的值,因此这将评估为!b(以及更改了值的值b).
| 归档时间: |
|
| 查看次数: |
41999 次 |
| 最近记录: |