示例: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++;便可。即保持一致