为什么是0,不是1

hhohho 2002-09-02 09:42:00
int i=0;
i=i++;
System.out.println(i);

打印出来的是0,为什么不是1,不是要先赋值后自加1吗?
...全文
92 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yang_yingfeng 2002-09-02
  • 打赏
  • 举报
回复
我觉得,i=i++;本来在进行完i++后,i应该是1,但是i++表达式本身是0,结果又把0付给了i,所以i又成为了0,我不知道是i自加和i=i++的赋值操作哪一个先
JackJia 2002-09-02
  • 打赏
  • 举报
回复
int i=0;
int m=i++;
System.out.println(i);
ChDw 2002-09-02
  • 打赏
  • 举报
回复
dupenf(飞跃人生) 你写的还是有一点点小问题
i=++i;这样是白费功嘛,i++;或者++i;不就完了嘛,为什么一定要用等号呢
dupenf 2002-09-02
  • 打赏
  • 举报
回复
这样就对了!!
int i=0;
i=++i;
system.out.println(i);
zbc 2002-09-02
  • 打赏
  • 举报
回复
我也是菜鸟,在c++语法中,确实是返回1,这里为什么会返回0呢,我也不知道?等等吧,楼上的兄弟
ChDw 2002-09-02
  • 打赏
  • 举报
回复
int i=0;
i++;
System.out.println(i);
就可以了,不用i=i++。
这样实际上存在歧义,不同的语言不同的编译器实际上存在不同的解析可能
在java里面是为1
实际上执行了i=i; i++;这两个语句
namowen 2002-09-02
  • 打赏
  • 举报
回复
应该这么写:
i += 1;
或者:
i++;
你那么写相当于:
i = (i++);
天知道会得什么结果。:)

62,614

社区成员

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

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