自增加應該注意的

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

相關文章
相關標籤/搜索