++ a,和 a--这个问题烦. 在简单的代码里 如果我用的是 a++,的话老是不能达到我预想的结果.但在次碰到++ 才会实现我想要的结果. 这是为什么?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int a = 1,b=1;System.out.println(a++);//结果是1System.out.println(++b);//结果是2楼主只要记着在前加是先给变量加1后在返回表达式的值即就是a的值,而后加时则正好相反。 ++a ------------> a+=a;a-- ------------> a=a-1 b = a++;-----------mov eax, dword ptr [a]mov dword ptr [b], eaxadd eax, 1mov dword ptr [a], eaxb = ++a;-----------mov eax, dword ptr [a]add eax, 1mov dword ptr [a] eaxmov dword ptr [b] eaxb += a;-----------mov eax, dword ptr [b]add eax, dword ptr [a]mov dword ptr [b], eax 我们把a++,++a这样的代码称为一个表达式,在java中表达式也是有值的。假设a=1:a++ 先返回表达式的值,在自增,即(a++)==1,a==2;++a 先自增,再返回表达式的值,即(++a)==2,a==2; import java.util.*;/** * @author troy(J2EE) * @version 1.0 1995年的3月23日 */public class Test{public static void main(String[] args){ int i=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 将来会成为前提主流吗 ? jpa 注解 怎么给集合元素是基本数据类型的属性添加注解? Spring中的@Transactional用法疑问 这样一个异常会在什么情况下发生,请各位高手列举问题的可能性 class文件也存在缓存?还是? 请教一个关于JMS的问题 hibernate如何更新pojo中的部分字段,而不是所有的字段 struts问题 (转贴)sungo的Eclipse使用小结 一个初学者 javax.naming.NameNotFoundException?? struts s:token 使用有问题,请教各位大仙!!! spring集成compass错误,各位大虾帮帮忙了
System.out.println(a++);//结果是1
System.out.println(++b);//结果是2
楼主只要记着在前加是先给变量加1后在返回表达式的值即就是a的值,而后加时则正好相反。
a-- ------------> a=a-1
-----------
mov eax, dword ptr [a]
mov dword ptr [b], eax
add eax, 1
mov dword ptr [a], eax
b = ++a;
-----------
mov eax, dword ptr [a]
add eax, 1
mov dword ptr [a] eax
mov dword ptr [b] eax
b += a;
-----------
mov eax, dword ptr [b]
add eax, dword ptr [a]
mov dword ptr [b], eax
假设a=1:
a++ 先返回表达式的值,在自增,即(a++)==1,a==2;
++a 先自增,再返回表达式的值,即(++a)==2,a==2;
import java.util.*;
/**
* @author troy(J2EE)
* @version 1.0 1995年的3月23日
*/
public class Test{
public static void main(String[] args){
int i=0;
i=i++ + ++i ;
System.out.println(i);
i=0;
i=i++ + ++i + i++;
System.out.println(i);
}
}
---------- java -- 运行 ----------
2
4输出完毕 (耗时 0 秒) - 正常终止
b=++a;//相当于a=a+1;b=a;
b=a++;//相当于b=a;a=a+1;