日期:2014-05-20 浏览次数:20808 次
int x = 0;
for(int i=0; i<100; i++) {
x = x++;
}
System.out.println(x);
x = 0;
x = x++ + ++x;
System.out.println(x);
int x = 10;
int y = x++;
System.out.println(y); // 10;
System.out.println(x); // 11;
int a = 10;
int b = ++a;
System.out.println(a); // 11;
System.out.println(b); // 11;
/*
我搜了网上的讲解大多事理解为
x++; 先在x所在的表达式中使用x的当前值,后让x加1
++x; 先把x的值加1,然后在运算中使用x的新值
我也是这样理解的
*/
在看他的代码:
int x = 0;
for(int i=0; i<100; i++) {
// 这里x = x++;这句还没运行完,x的值为0;运行完了之后x的值不是应该加1的吗?
x = x++;
}
System.out.println(x);
x = 0;
// 这一句就完全不知道怎么拆开来解释了
x = x++ + ++x;
System.out.println(x);
int tmp = x++;//此句结束后tmp=0,x=1;
x = tmp;//x重新复制为0
int x = 0;
int tmp1 = x++;//tmp1=0,x=1;
int tmp2 = ++x;//tmp2=2,x=2,++的优先级高
x = tmp1 + tmp2;//x=2