最近在准备面试中,遇到了一道有意思的题目,今天拿来给大家分享分享
int i=0;
int result=i++ + ++i + i++;
System.out.println(result);
问你该题目的输出的result的值是多少?并说出你是如何计算和理解的。乍一看是不是感觉这不是在侮辱我们吗,你细看其实有坑的。我希望大家动动手或者动动脑,再看我下面的解释。
答案是4。看看你有没有答对呢,虽说是一道非常基础的题目,但是也挺考验基本功的.
解题思路来了:
要做出这道题你首先得知道 ++i 和 i++ 的区别
++i 是先运算 后赋值 例如 i=0 x=++i; 输出的x值是1 就是因为++i是 先做i+1
在将i+1的值赋值给x
而i++ 是先赋值 后运算 例如 i = 0 x=i++; 求 x的值是0 因为是先将i为0赋值给x,再做i=i+1
好了,弄懂上面这两个区别,你就能做出上面这道题了。
result = 0 + 2 + 2
首先第一段i++为什么是0 先赋值后运算 但是i运算完一次 i==1了,所以带到++i中时i==2了
第三段i++,i还是2,所以最后的结果是4,我的简单理解就是i++就i赋值不变,++i就会i+1
新手上路,如有不对,请多赐教,谢谢