java里面关于++i和i++的区别

降降降 2020-05-01 11:20:55
在学习的过程中老师说过++i是先加1再去赋值,i++是先去赋值再去加1,到最后输出的i肯定都是加一的;
声明赋值变量int k=0; int i=0; k=i++; k=++i; 最后i的值都为1;
但是如果写成 int i=0; i=i++; 这个时候i的值为0 i=++i; 这个i是1; 最终的结果并不一样这是为什么?
...全文
210 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
android_cai_niao 2020-05-11
  • 打赏
  • 举报
回复
气死我了,上才艺!! 先告诉你一个关键点:不论是前++还是后++,都是先把i自增。 这个前++和后++对于有几年工作经验的人也不一定懂,你的老师可能也没掌握完全这里面的细节,我最近写了一篇文章,通俗易懂,可以好好看看,学不会可以打我:https://blog.csdn.net/android_cai_niao/article/details/106027313
Myueye 2020-05-04
  • 打赏
  • 举报
回复
i=i++;是先把i赋值给i,这时i还没自加,赋值完后才自加1;i=++i;这个则是先把i自加1,而后才执行赋值操作;详情可以多看看书。
qybao 2020-05-02
  • 打赏
  • 举报
回复
纠正一下,2L是 i=++i 的情况
qybao 2020-05-02
  • 打赏
  • 举报
回复
i=i++,先计算=右边的表达式++i的值,结果是1(i先自增增变成1,再把1作为表达式的结果,这个结果也叫临时变量的值或叫中间值),然后再把这个表达式的结果1(也叫做临时变量的值或中间值)赋给=左边的i,所以最终i为1。 所以区别就是,i++是先把i的值作为表达式的结果保存到临时变量,再i自增;++i是i先自增,再把自增后的结果作为表达式的结果保存到临时变量;最后两者都是把临时变量的值又赋给=左边的i。
ywfpclt 2020-05-02
  • 打赏
  • 举报
回复
x= ++y;等同于: ++y;或y++; x=y; x= y++;等同于: x=y; ++y;或y++;
qybao 2020-05-01
  • 打赏
  • 举报
回复
你先找本入门的教程理解一下表达式的值 i=i++,先计算=右边的表达式i++的值,结果是i(i是0所以结果是0,也有人把这个结果叫做临时变量的值或叫中间值),然后i递增变为1(此时i确实变成1了),然后再把表达式的结果0(也叫做临时变量的值或中间值)赋给=左边的i,所以最终i为0。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧