日期:2014-05-20  浏览次数:20659 次

一个++、--运算符问题,求解?
class Test{
  public static void main(String[] args){
  int i = 0; 
  int j = i++ + ++i; 
  int k = --i + i--; 
  System.out.println("i="+i+" j="+j+" k="+k);
}
}

代码执行后i、j、k分别等于多少呢?
它们是怎样运算的,请说出详细运算步骤

------解决方案--------------------
int j = i++(运算时i = 0,然后自增为1) + ++i()(自增为2,运算时为2);//j = 0 + 2 = 2
int k = --i()(自减为1,运算时为1) + i--(运算时i = 1,然后自减为0);//k = 1 + 1 = 2
最后i = 0
结果 i = 0,j = 2,k = 2 

------解决方案--------------------
结果是:i=0 j=2 k=2
运算步骤:
i=0;
j=(i++)+(++i) 分步计算为:i++ =0 而i=1;++i=1+1=2 而i=2;所以j=0+2=2,此时i=2;
k =(--i)+(i--) 分不计算为:--i=2-1=1 而i=2-1=1;i--=1 而i=1-1=0;所以k=1+1=2,此时i=0;