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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑旋风唔够威 中级黑马   /  2016-7-4 17:20  /  2653 人查看  /  22 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对a初始化一个值。然后a=a++;
输出后发现a的值没有变。

22 个回复

倒序浏览
赋值运算,左边的a赋值给右边的a了,因为++在后面,所以先参与赋值运算
回复 使用道具 举报
因为=右边的a先赋值给了=左边的a,然后再自增
回复 使用道具 举报
++   还是慢了一步啊~
回复 使用道具 举报
a++   跟++a的区别
回复 使用道具 举报
右边的a先赋值给了左边的a,然后再自增因为++在后面
回复 使用道具 举报
wrui 中级黑马 2016-7-4 21:44:39
7#
因为他使用的是没有增加之前的值
回复 使用道具 举报
++运算符在后面,先进行赋值运算,再经行+1运算!
回复 使用道具 举报
sgnx 中级黑马 2016-7-4 21:47:42
9#
先用第三方变量temp记录住a的值,然后a++,由于它是后置加,所以将a以前的值就是temp的值赋值给a
回复 使用道具 举报
a=a++;是将右边的a赋值给左边的a。结果还是它本身,但是在内存中它自增了
回复 使用道具 举报
这个是新手很容易犯的错误,一开始自己也不是太明白。
下面的回答来自课本:
自增和自减表达式
(1)++v : 先把 v 的值增加 1,然后,将 v 的值作为表达式的值;
(2)v++ : 先把 v 的值作为表达式的值,然后再把 v 的值增加 1;
(3)--v :  先把 v 的值减 1,然后,将 v 的值作为表达式的值;
(4)v-- : 先把 v 的值作为表达式的值,然后再把 v 的值减 1
举例:
int v = 5;
int s = v++; // s 的值为 5(先把 v 的值作为表达式的值), v 的值为 6(然后再把 v 的值增加 1)

int v = 5;
int s = ++v; // s 的值为6,v 的值也是 6

补充:
记住这些有窍门哦,,,多想,多思考,加油 {:3_57:}
回复 使用道具 举报
java的运算顺序就是这样的
回复 使用道具 举报
++的位置在后面先赋值后自增
回复 使用道具 举报
运算符顺序是从左到右的
回复 使用道具 举报
a++,先使用a,再对a进行++运算
++a,先对a进行++运算,再使用a
回复 使用道具 举报
用++a就好了 ;a=a++是先赋值再运算   先把a的值赋值给a,再进行++运算 所以a的值不变。
回复 使用道具 举报
先运算,后自增,即先将a赋值给a,然后自增
回复 使用道具 举报
自增自减符号放在后面会先把原值进行运算,然后在运算自增自减,a==a++,这句话是先把a付给a,然后a在自增,但他自增后并没有再赋值给a,所以不变,而且==是逻辑运算符,赋值是 =
回复 使用道具 举报
大哥应该写成a = ++a !
回复 使用道具 举报
先执行的是赋值运算,把a没有进行++运算的值赋给a,再自增的,相当于a=a,a=a+1,(a=a+1)是在内存中存储,如果再调用a进行运算a的值就是自增后的值
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马