问题描述
在简单的代码里如果我用的是a++,的话老是不能达到我预想的结果.但在次碰到++才会实现我想要的结果.这是为什么??
解决方案
解决方案二:
a++是操作执行完一遍后加,而++a则是在操作执行前加。
解决方案三:
多试几次
解决方案四:
运算符在前就是先运算,后引用,反之亦然
解决方案五:
inta=1,b=1;System.out.println(a++);//结果是1System.out.println(++b);//结果是2楼主只要记着在前加是先给变量加1后在返回表达式的值即就是a的值,而后加时则正好相反。
解决方案六:
++a------------>a+=a;a-------------->a=a-1
解决方案七:
引用5楼ray8837008的回复:
++a ------------>a+=a;a-- ------------>a=a-1
不能这么解释吧。
解决方案八:
引用3楼foolishdault的回复:
运算符在前就是先运算,后引用,反之亦然
说的对!
解决方案九:
b=a++;-----------moveax,dwordptr[a]movdwordptr[b],eaxaddeax,1movdwordptr[a],eaxb=++a;-----------moveax,dwordptr[a]addeax,1movdwordptr[a]eaxmovdwordptr[b]eaxb+=a;-----------moveax,dwordptr[b]addeax,dwordptr[a]movdwordptr[b],eax
解决方案十:
上面几层楼的都说了...
解决方案十一:
引用1楼crystalcup的回复:
a++是操作执行完一遍后加,而++a则是在操作执行前加。
..
解决方案十二:
我们把a++,++a这样的代码称为一个表达式,在java中表达式也是有值的。假设a=1:a++先返回表达式的值,在自增,即(a++)==1,a==2;++a先自增,再返回表达式的值,即(++a)==2,a==2;
解决方案十三:
那就用++a
解决方案十四:
importjava.util.*;/***@authortroy(J2EE)*@version1.01995年的3月23日*/publicclassTest{publicstaticvoidmain(String[]args){inti=0;i=i+++++i;System.out.println(i);i=0;i=i+++++i+i++;System.out.println(i);}}
解决方案十五:
输出----------java--运行----------24输出完毕(耗时0秒)-正常终止
其他方案:
呵呵
其他方案:
举个例子b=++a;//相当于a=a+1;b=a;b=a++;//相当于b=a;a=a+1;
其他方案:
谢谢在位的好心人···。我想问一下flex将来会成为前提主流吗?
其他方案:
看你的头像真蛋疼
其他方案:
引用6楼zm851203的回复:
引用5楼ray8837008的回复:++a------------>a+=a;a-------------->a=a-1不能这么解释吧。
能理解出来就不错了,一个姑娘
其他方案:
a++是操作执行完一遍后加,而++a则是在操作执行前加。
其他方案:
a++是操作执行完一遍后加,而++a则是在操作执行前加。
其他方案:
a++是操作执行完一遍后加,而++a则是在操作执行前加。
其他方案:
引用16楼hellozqqii的回复:
举个例子b=++a;//相当于a=a+1;b=a;b=a++;//相当于b=a;a=a+1;
+1