Java 两者之间有什么区别!=和=!在爪哇?
我在看一些模拟问题。我遇到了一个非常令人困惑的语法。这是:Java 两者之间有什么区别!=和=!在爪哇?,java,syntax,Java,Syntax,我在看一些模拟问题。我遇到了一个非常令人困惑的语法。这是: class OddStuff { public static void main(String[] args) { boolean b = false; System.out.println((b != b));// False System.out.println((b =! b));// True } } 为什么输出在之间变化=和=?这个问题只是在用令人困惑的间距与你
class OddStuff {
public static void main(String[] args) {
boolean b = false;
System.out.println((b != b));// False
System.out.println((b =! b));// True
}
}
为什么输出在
之间变化=代码>和=代码>?这个问题只是在用令人困惑的间距与你玩游戏
b!=b
是通常的=代码>(不等于)比较
另一方面:
b=!b
最好写成b=!b
解析为:
b = (!b)
因此它是两个操作符
首先反转b
然后将其分配回b
赋值运算符返回指定的值。因此,(b=!b)
的计算结果为true-这就是您打印出来的结果。b=!b
是一项作业。它将b
分配给!b
表达式的计算结果为结果值,即true
b=!b
你在做作业,你在说B应该有值!B
b!=b
您正在询问B是否与B不同b
表示!(b==b)
:与b==b
相反
b=!b实际上是b=!b
,作业。它正在切换b
的值。赋值计算为表达式的值,因此这将计算为!b
(同时更改了b
)的值。正确,更正确的是,(b=!b)vs.(b!=b)我不知道作业可以用那种方式完成。@Prometheus 87是的,你可以将作业放在语句中。太好了,我学到了一些新东西。谢谢另一个关键因素是赋值计算为赋值,因此System.out.println(b=!b)
在之后打印b
的值!如果java C++将代码< >真/ <代码>分配给B,那么两个都返回false。看一看:P