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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© nilaoyededie 中级黑马   /  2013-6-23 16:00  /  1305 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 nilaoyededie 于 2013-6-24 09:34 编辑

int  x=5;
Console.writeLine((x++)+(x++)+(x++));
int y=(x++)+(x++)+(x++);
Console.writeLine(y);

8 个回复

倒序浏览
先确定一下   楼主的代码是不是发错了   还是因为偶是新手看不懂呐???
要想了解一段代码的运行详细过程 可以利用调试工具   这样就可以随时观察到变量的变化了
回复 使用道具 举报
看不懂是什么
回复 使用道具 举报
本帖最后由 道法乾坤110 于 2013-6-24 14:24 编辑

我想楼主的意思应该是,想了解这几个后++,怎么个运算顺序。
不是int i=5;而是应该int x=5吧,
应该是这样的
int x=5;
Console.writeLine((x++)+(x++)+(x++));
int y=(x++)+(x++)+(x++);
Console.writeLine(y);
楼主可能想知道Console.writeLine((x++)+(x++)+(x++));这里面的三个x++是一起算,还是先算第一个x++,再算第二个x++,再算第三个x++;
因为这两种想法,结果是不一样的。
具体过程是这个样子的,Console.writeLine((x++)+(x++)+(x++));里面的先算第一个x++,此时x=5,当第一个运算结束后,x=6,所以第二个x++就是6,当第二次运算完之后,x=7,所以第三个x++就是7,三者加起来就是18;
同理,执行完Console.writeLine((x++)+(x++)+(x++));之后,x就等于8了。
所以再当执行int y=(x++)+(x++)+(x++);的时候,x=8,所以跟接下俩就跟上面的算法一样,也就是int y=8+9+10;也就是27.
回复 使用道具 举报
道法乾坤110 发表于 2013-6-23 17:00
我想楼主的意思应该是,想了解这几个后++,怎么个运算顺序。
不是int i=5;而是应该int x=5吧,
应该是这样 ...

书上看的,抄的时候习惯的原因抄错了
计算结果是
18
27
回复 使用道具 举报

那些x++运算的先后
回复 使用道具 举报
本帖最后由 黄文超 于 2013-6-23 17:21 编辑

我也同问{:soso_e127:}

回复 使用道具 举报
18的结果比较好理解。27是要考虑优先级和栈内存的问题。
回复 使用道具 举报
陈壹 中级黑马 2013-6-24 09:28:41
9#
nilaoyededie 发表于 2013-6-23 17:04
书上看的,抄的时候习惯的原因抄错了
计算结果是
18

每个括号结束时,X++。
Console.writeLine((x++)+(x++)+(x++));
所以这里是5  6  7,运算结束时x==8,
同样int y=(x++)+(x++)+(x++);
8 9 10
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马