【发布时间】:2019-12-16 12:42:25
【问题描述】:
我正在学习我的 OCA 认证,发现了这段代码,我想知道为什么下面代码的结果是“1, 2”而不是“1, 3”。
这里使用的'&'运算符不是short cirquit,后缀增量应用于第一个int,那么为什么不应用于第二个呢?
int i = 0;
int j = 1;
if( (i++ == 0) & (j++ == 2) ){
i = 12;
}
System.out.println(i+" "+j);
edit 学习时休息很重要。我理解所涉及的概念,但疲劳让我犯了一个逻辑错误,这让我假设 j 一开始是 2
【问题讨论】:
-
j++ = j + 1 = 1 + 1 = 2。为什么j应该是 3? -
因为我学习太久了,看来我的大脑已经被挖掘出来了..但是谢谢你的帮助hha..
-
如果您使用
&&而不是&,这将完全一样。
标签: java logical-operators short-circuiting