小白疑问,还请大牛解答

「已注销」 2018-08-08 05:51:26
加精
int i = 0;
i = i++;
System.out.println(i);
为什么输出的结果是0
...全文
4874 67 打赏 收藏 转发到动态 举报
写回复
用AI写文章
67 条回复
切换为时间正序
请发表友善的回复…
发表回复
十八道胡同 2018-11-08
  • 打赏
  • 举报
回复
C语言基础。。。
MubaiClink 2018-11-08
  • 打赏
  • 举报
回复
++在前和在后的问题,你这个是先赋值后计算的。
_Ricky_ 2018-11-07
  • 打赏
  • 举报
回复
Idea 还是强大的
Trash-fish 2018-11-02
  • 打赏
  • 举报
回复
i=i++;
这个语句的定义是:先个变量赋值,然后在自加,所以结果是0
一个小的码农 2018-09-22
  • 打赏
  • 举报
回复
i++;在被使用的时候值是不会变的 使用之后 i自增
HerryDong 2018-09-19
  • 打赏
  • 举报
回复
你就这么理解吧:int a = i++;i = a;所以a=0,i=0
HerryDong 2018-09-19
  • 打赏
  • 举报
回复
你就这么理解吧:int a = i++;i = a;所以a=0,i=0
永恒的狼牙 2018-09-18
  • 打赏
  • 举报
回复
因为先使用后加加
林蜗牛snail 2018-09-18
  • 打赏
  • 举报
回复
先赋值,再加一
咸鱼混子 2018-09-17
  • 打赏
  • 举报
回复
debug一下就好了
洪三思 2018-09-16
  • 打赏
  • 举报
回复
楼主可以这么记,i在前,先赋值后加,i在后,先加后赋值(给左边)。此时你的问题是情况1 所以左边得0
xbmu3 2018-09-16
  • 打赏
  • 举报
回复
给楼主顶个贴,!
xbmu3 2018-09-09
  • 打赏
  • 举报
回复
来学习,学习,支持
qq_41635161 2018-09-04
  • 打赏
  • 举报
回复
效于
a = i;
i++;

但是
i=i++;
不等效于
i=i;
i++;
这样 就更容易发现问题了
qq_41540648 2018-09-03
  • 打赏
  • 举报
回复
先赋值在自增,java基本不行哦
Fly天夏 2018-09-03
  • 打赏
  • 举报
回复
i=++i你再试下
小灰狼 2018-08-29
  • 打赏
  • 举报
回复
讨论这种问题没什么意义,在实际应用中,楼主这样写除了装B真没啥用处,反而把程序逻辑整得更复杂

只要一个表达式里对一个变量应用了++或--运算符,那么这个变量就在这个表达式里就只允许出现这一次,否则程序逻辑就变得难以预知,给维护带来困难。
gd_ROC 2018-08-28
  • 打赏
  • 举报
回复
第一:优先级问题,先赋值再自加
第二:编译器不同,一般C编译器遇到输出带转行符号时会结束缓存,则会输出自加后的值。
qq_43087717 2018-08-28
  • 打赏
  • 举报
回复
++后置运算 先进行打印 再进行运算 所以还是0
冲上云霄 、 2018-08-28
  • 打赏
  • 举报
回复
i++是先执行后加一,++i是先加一后执行。说成大白话就是i++是先用i参与运算,参与完后再自加1,++i同理
加载更多回复(46)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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