java中(--i + i + i++)

inti=0;System.out.println(--i+i+i++);运行输出的是-3.请问这个算式怎样算.... int i = 0;
System.out.println(--i + i + i++);
运行输出的是 -3.请问这个算式怎样算.
展开
 我来答
mxxtxmyn
推荐于2018-05-06 · TA获得超过397个赞
知道小有建树答主
回答量:97
采纳率:0%
帮助的人:113万
展开全部
后自增操作符即i++返回的是将操作数原来的、未修改的值作为表达式的结果值; 例如
i=0; j=i++(此时i还没有自增); 执行到这里的时候 j=0,i=1

前自增操作符即++i返回的是将修改后的的操作数的值作为表达式的结果值。
i=0; j=++i(i先进行自增); 执行到这里的时候 j=1,i=1

自减 i-- 和 --i 的原理跟自增一样的
这题中 先进性了--i 运算,i值变为-1,故后面的几个i值都为-1
结果为-3, 最后有个i++的操作,i会自增为0 ,
但不影响(--i + i + i++) 里面i的取值

System.out.println(--i + i + ++i); 这样是-1
稍微复杂点的是这样的例子,你可以试试,比较容易理解++的原理
i=0,j=0;
i=i++ + ++i;
j=++j+j++ +j++ +j++
没有响应m2
2009-10-30 · TA获得超过8388个赞
知道大有可为答主
回答量:7579
采纳率:33%
帮助的人:3894万
展开全部
你这么看就行了
(i=i-1)+i+i++
-1+(-1)+(-1)++
3个 -1 相加当然就是 -3了
不如如果下边在加一行
System.out.println(i);
的话结果就是-2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Christ_earl
2009-10-30 · TA获得超过1245个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:0
展开全部
一步一步来
--i 是i先自减1 i此时为 -1
然后算 --i + i -1 + (-1) = -2
然后 i++ 是i先进行运算 再自增 1 此时的i 还是 -1 前面的-2 +(-1)= -3
打印 出结果 -3
然后i 自增 1 i = -2
如果楼主在打印一下 i System.out.println(i) ;会发现 i= -2 ;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
if___love_
2009-10-30
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
一步一步来
--i 是i先自减1 i此时为 -1
然后算 --i + i -1 + (-1) = -2
然后 i++ 是i先进行运算 再自增 1 此时的i 还是 -1 前面的-2 +(-1)= -3
打印 出结果 -3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
纯美且聪颖丶海鸥7
2010-04-30 · 超过17用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:50.6万
展开全部
i 是你定义变量的i
+i 与变量i相加
-i 与变量i相减
java中的++ i和 i++ 和c语言中是一样的

首先你要明确以一点是不管是 ++i 还是 i++,最后结果对于i来说都是一样的,他的值都会加1。
eg:i=5;这两个动作完成后i的值都变成6。

其次 对于他赋值给的那个变量就不一样了。
eg:i=5;
a = ++i,这句执行完后a = 6,当然i=6;
但是
a = i++,这句执行完后a = 5,i=6;

看了上面的例子应该明白结果了吧。

理解的话对于a = ++i你可以理解先执行+,再赋值。而对于a = i++,是先执行赋值再+。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式