示例:java
public class Client{class
public static void main(String[] args){变量
int count=0;mock
for(int i=0;i<10;i++){mock
count=count++;
static
}co
System.out.println("count="+count);
return
}
void
}
你算出的结果是多少?10吗?恭喜你错了,运行一下,答案是0
为何???
看看java的处理步骤
第一步:JVM把count的值(其值是0)拷贝到临时变量区
第二步:count的值加1,这时候count的值是1
第三步:返回临时变量区 的值,注意这个值是0,没有修改过
第四步:返回值赋值给count,此时count值被重置成0
也能够这样去解释count=count++;这条语句
public static int mockAdd(int count){
//先保存初始值
int temp=count;
//作自增操做
count=count+1;
//返回原始值
return temp;
}
这应该和你的本意不同吧。那么怎么去解决这个自增加的陷阱呢。
只须要把count=count++;改为count++;便可。即保持一致