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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张成智 中级黑马   /  2013-5-27 22:18  /  2494 人查看  /  23 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张成智 于 2013-5-29 22:04 编辑

int a=5;
a++;
Console.WriteLine(a);
a的值为6;
int a=5;
int b=a++ +3;
b的值为8;
此时a++的值为5;
为什么单独的a++和算数表达式里的a++的值不同?

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 赞一个!

查看全部评分

23 个回复

倒序浏览
你可以在b之后再输出a的值,这个事运算符优先级问题,头疼的时候就加括号

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 鼓励

查看全部评分

回复 使用道具 举报
int a=5;
a++;//先使用a然后在自加
Console.WriteLine(a);//你如果写在这里面的话 那输出的就是5了
a的值为6;
int a=5;
int b=a++ +3;//使用a之后在自加 你现在打印a  a就是6了

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 25

查看全部评分

回复 使用道具 举报
int a=5;
a++; //后++的意思是先运算后++,首先a=5,然后a+1,所以结果a=6,a++相当于 a = a + 1;
Console.WriteLine(a);
a的值为6;
int a=5;
int b=a++ +3;//同理先运算,b = a +3,再 a++,结果b=8,a=6
b的值为8;
此时a++的值为5;
希望能够帮到你。

QQ图片20130527231246.jpg (16.52 KB, 下载次数: 0)

QQ图片20130527231246.jpg

评分

参与人数 1技术分 +2 收起 理由
袁梦希 + 2 赞一个!

查看全部评分

回复 使用道具 举报
  1. int a=5;
  2. int b=a++ +3; // "++"号写在后面的时候, 先进行运算后在给a的值加1

  3. int b=++a +3; //"++"号写在前边, 这样的话就是先给a加1再参与运算 , 这时b的值就是9了
复制代码

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
建议你应该好好的学习一下++a 与a++的区别!
回复 使用道具 举报
迟强 中级黑马 2013-5-28 15:55:14
7#
A++ 先运算再++
++A 先++再运算
A--  --A 同理

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
一种是先加后算   一种是先算后加   应用不同场合

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 鼓励,多来论坛交流

查看全部评分

回复 使用道具 举报
不同的是 单独的a++并没有参与其它的运算,所以结果是6;
而a = 5; b = a++ + 3;这个是a先与3相加,然后a再自己加1。

注意++在后面表示后运算,如果这样写++a + 3是先算a的,再算 + 3。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
qiumanlover 发表于 2013-5-27 22:28
你可以在b之后再输出a的值,这个事运算符优先级问题,头疼的时候就加括号 ...

谢谢,:lol。
回复 使用道具 举报
SOAR 发表于 2013-5-27 22:56
int a=5;
a++;//先使用a然后在自加
Console.WriteLine(a);//你如果写在这里面的话 那输出的就是5了

谢谢了。
回复 使用道具 举报
Xi_SHENG: 发表于 2013-5-27 23:14
int a=5;
a++; //后++的意思是先运算后++,首先a=5,然后a+1,所以结果a=6,a++相当于 a = a + 1;
Console ...

明白了,谢谢。
回复 使用道具 举报
葛杨杨 发表于 2013-5-28 05:47

谢谢了。
回复 使用道具 举报
sdjngl123 发表于 2013-5-28 11:17
a++是在当前表达式执行完之后才会把值加1
你也可以这么认为,就是当前语句执行到分号(;)后,a的值才进行 ...

谢谢了。
回复 使用道具 举报
蔡志涛 发表于 2013-5-28 15:09
建议你应该好好的学习一下++a 与a++的区别!

谢谢了。
回复 使用道具 举报
迟强 发表于 2013-5-28 15:55
A++ 先运算再++
++A 先++再运算
A--  --A 同理

谢谢了.
回复 使用道具 举报
zpzhangwenhan 发表于 2013-5-28 16:23
一种是先加后算   一种是先算后加   应用不同场合

谢谢了。
回复 使用道具 举报
打个比方
a++的值为a,然后a再加1
++a的值是先加1,即它的值为a+1
所以说程序是按照步骤来的,如果是a++的话,在那一行代码中,a的值是不变的,下一行才发生变化,++a则是在那一行已经发生了变化

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
关关雎鸠 发表于 2013-5-29 15:39
不同的是 单独的a++并没有参与其它的运算,所以结果是6;
而a = 5; b = a++ + 3;这个是a先与3相加,然后a再 ...

谢谢了。
回复 使用道具 举报
Xi_SHENG: 发表于 2013-5-27 23:14
int a=5;
a++; //后++的意思是先运算后++,首先a=5,然后a+1,所以结果a=6,a++相当于 a = a + 1;
Console ...

答得很好,给你两分
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马