问题:
int i=0;j=0;
i=(i++) + (++j) + (++i) + (i++);
问:i 等于多少?
看到好多此类的问题帖子,我个人的基础也比较薄弱,所以想找一个比较妥的方法来应对这种面试题;虽然在实际的开发中不会有人这么去写,但是对于理解java基础是很有帮助的。
我是这么分析的:i=(i++) + (++j) + (++i) + (i++);和int f=(i++) + (++j) + (++i) + (i++)是等价的;但是后者更好理解一些;
int f=(i++) + (++j) + (++i) + (i++);
f=(i++);//f=0;i=1;
f=f+(++j);//f=1;j=1;
f=f+(++i);//f=3;i=2;
f=f+(i++);//f=5;i=3
因此上面的题目i应该等于5;
这么理解不知道对不对,但是是一定能计算出正确答案的。