黑马程序员技术交流社区

标题: a=a++为什么不会自增? [打印本页]

作者: 黑旋风唔够威    时间: 2016-7-4 17:20
标题: a=a++为什么不会自增?
对a初始化一个值。然后a=a++;
输出后发现a的值没有变。
作者: pudao    时间: 2016-7-4 18:04
赋值运算,左边的a赋值给右边的a了,因为++在后面,所以先参与赋值运算
作者: 麻辣火锅    时间: 2016-7-4 19:16
因为=右边的a先赋值给了=左边的a,然后再自增
作者: Vision-V    时间: 2016-7-4 19:43
++   还是慢了一步啊~
作者: C小池    时间: 2016-7-4 21:02
a++   跟++a的区别
作者: yabiaodou    时间: 2016-7-4 21:06
右边的a先赋值给了左边的a,然后再自增因为++在后面
作者: wrui    时间: 2016-7-4 21:44
因为他使用的是没有增加之前的值
作者: 沸腾鱼    时间: 2016-7-4 21:47
++运算符在后面,先进行赋值运算,再经行+1运算!
作者: sgnx    时间: 2016-7-4 21:47
先用第三方变量temp记录住a的值,然后a++,由于它是后置加,所以将a以前的值就是temp的值赋值给a
作者: 他的好    时间: 2016-7-4 22:20
a=a++;是将右边的a赋值给左边的a。结果还是它本身,但是在内存中它自增了
作者: ImKing    时间: 2016-7-4 23:35
这个是新手很容易犯的错误,一开始自己也不是太明白。
下面的回答来自课本:
自增和自减表达式
(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:}
作者: 告白气球    时间: 2016-7-4 23:38
java的运算顺序就是这样的
作者: aslwq2012    时间: 2016-7-4 23:44
++的位置在后面先赋值后自增
作者: 微--尘    时间: 2016-7-5 00:05
运算符顺序是从左到右的
作者: syso信任    时间: 2016-7-5 09:59
a++,先使用a,再对a进行++运算
++a,先对a进行++运算,再使用a
作者: 745661590    时间: 2016-7-5 11:17
用++a就好了 ;a=a++是先赋值再运算   先把a的值赋值给a,再进行++运算 所以a的值不变。
作者: yuanzhils    时间: 2016-7-5 12:38
先运算,后自增,即先将a赋值给a,然后自增
作者: 纸牌屋    时间: 2016-7-5 21:34
自增自减符号放在后面会先把原值进行运算,然后在运算自增自减,a==a++,这句话是先把a付给a,然后a在自增,但他自增后并没有再赋值给a,所以不变,而且==是逻辑运算符,赋值是 =
作者: caesar_QMwS4    时间: 2016-7-5 21:35
大哥应该写成a = ++a !
作者: 迅雷    时间: 2016-7-5 21:58
先执行的是赋值运算,把a没有进行++运算的值赋给a,再自增的,相当于a=a,a=a+1,(a=a+1)是在内存中存储,如果再调用a进行运算a的值就是自增后的值
作者: zhang894095    时间: 2016-7-5 23:30
++在后面是参与运算之后再自增的,这道题相当于a把自己的值赋值给了a周然后再自增,此时被赋值的左边的a还是原来的a的值,而右边的a已经变成2了,不过还没有给左边赋值所以左边还是原来的值
作者: wyq0627java11    时间: 2016-7-5 23:47
a++是先赋值,再进行自增,++a的话会先自增,再赋值,你可以换下试试
作者: zhangwenjin    时间: 2016-7-6 00:08
我感觉黑马这讲的有问题
我是这样理解
int a = 1;
a=a++;还是a=++a
都是a先自增变成2;
而咱们可以将a++看成一个整体等于1
这样相当于a++又给a赋值一次 a又变成1





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2