[code=java]public class Part {
public static void main(String[] args) {
int j = 0;
for (int i = 0; i < 100; i++) {
j = j++;
}
System.out.println(j);
}
}[/code]输出为0。。。。实在想不透了,求解
j=j++运算解析:
++运算符比=运算符优先级别高,但++后置表示将自身的优先级降到最低,所以上式等同于(j=j)++,你可能要说那这样逻辑关系也不应该是0呀?错!java里根本不同意像(j=j)++这样的运算结构,这样写会报错的,但j=j++却不报错;(maybe a bug);楼上的代码结果为100是因为println(j++)的原故
松朝的解释实在很。。。。(省略2个字)
[code=java]public class Part {
public static void main(String[] args) {
int j = 0;
int k = 0;
for (int i = 0; i < 100; i++) {
k = j++;
}
System.out.println(k);
}
}[/code]
运行这段代码看看就知道了,其实实际开发中j++写在=号后面或者+号后面的情况经常有,当然单独提出来写,看起来更清晰