int a = 2;
int b = a + 3 * a++;
System.out.println(b);
2+3*2=8
后面的a先运算在自增,为2,如果输出a,那么它就是3了
int a = 2;
int b = a++ + 3 * a;
System.out.println(b);
2+3*3=11
前面的a先运算再自增为2,后面的a是自增后的a为3作者: 静心鱼 时间: 2013-8-31 13:28 本帖最后由 静心鱼 于 2013-9-8 21:52 编辑
X++ 先运算后自增 ++X 先自增后运算
int a = 2;
int b = a + 3 * a++; //此时第一个a的值为2 3*a++ 中的a++应该先将a参与运算再自增 也就是先运行3*2
//再将a的值自增 这句话运行结束后 b的值等于2+3*2=8 而a的值则=3
System.out.println(b);
//这种类型的题目重点这个运算是怎么运算 给你看另一个题目 你就理解了
int a = 2;
int b= a++ + a++;
System.out.println(b);
//此时 a++的先运算的运算不是指直接拿来a+a 而是可以这么理解
//我们将a++ 或者++a 看做直接参与运算的一个整体 ,此处称为式子第一个a++的 a 的 值为 2 ,a++的值由于先运算再自增 所以a++这个式子的值此时也为 2 ;
//然后对a进行自增 a的值+1变为 3
//然后再来看第二个a++ 此时的 a 值为 3,这个a++式子的值也为 3, 将这个a++先和前面a++式子进行运算 得出整个右边式子的值为 5
//将这个5 赋值给b b的值此时为 5
//然后对a进行自增 a的值+1变为4