A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谢栋文 中级黑马   /  2012-4-11 16:25  /  2000 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int i = 10;
i = i++;
Console.WriteLine(i);//为什么输出的还是10?
Console.ReadKey();

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

10 个回复

倒序浏览
i=i++;
可以拆分成i=i;
i++;
不管怎么样最后i都自加了1次,我输出的i,难道这两个i不是同一个变量?
回复 使用道具 举报
i++的结果还是i。只有在下次用到i的时候i的值才有变化。
i=10,i++的时候返回结果是10,但是i的值变成了10,但是这个时候又将i赋值为i++,所以i的值还是没有变化。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
i++是后加。所以在进行语句运算时,i++取i原值参与运算。所以i=10.
可以前+一下,i=++i;就会在运算前加1.

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
++i就会不同了……

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
问题出在i=i++上了,你这样写,就会先把i的值赋给i,然后再+1,改成++i,就行了

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
王连 中级黑马 2012-4-15 14:42:42
7#
您好,这是i++与++i的区别问题;首先“=”的运算级别低于“++”的运算级别,所以在进行计算的时候是先进行++运算然后再进行=赋值运算,而i=i++是把i自加前的值赋给i,如果你改成i=++i则是把i自加1后的值赋给i。我这样解释你可懂??

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
何圣东 黑马帝 2012-4-15 17:07:08
8#
i = i++;这一句中i++的值还是10,所以...
把这句改成i++;会输出你想要的结果

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
过客 中级黑马 2012-4-15 17:47:22
9#
你可以这样拆开了理解:
1、
int i=10;
i=i;
i++;
然后输出的结果是10。
2、
int i=10;
i++;
i=i;
输出的就是11.

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
i++是先赋值在计算i还是10,下次再使用i 时=10.

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
i=i++的意思是执行完i=i++执行完之后 i自加1,而在i没有加1之前把i++的值赋给前面的i了
所以就是10了,要是i=++i的话就不是10,而是11

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马