黑马程序员技术交流社区
标题:
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