国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

警惕自增的陷阱

2019-11-11 07:31:39
字體:
來源:轉載
供稿:網友
public static void main(String[] args) { int count =0; for(int i=0;i<10;i++){ count=count++; } System.out.PRintln("count="+count); }       運行結果是 count 等于 0。 為什么呢?       count++ 是一個表達式, 是有返回值的, 它的返回值就是 count 自加前的值, java 對自加是這樣處理的 : 首先把 count 的值( 注意是值, 不是引用) 拷貝到一個臨時變量區, 然后對 count 變量加 1, 最后返回臨時變量區的值。 程序第一次循環時的詳細處理步驟如下:      步驟 1 JVM 把 count 值( 其值是 0) 拷貝到臨時變量區。      步驟 2 count 值加 1, 這時候 count 的值是 1。      步驟 3 返回臨時變量區的值, 注意這個值是 0, 沒修改過。      步驟 4 返回值賦值給 count, 此時 count 值被重置成 0。“count=count++”這條語句可以按照如下代碼來理解:public static int mockAdd(int count){ // 先保存初始值 int temp =count; // 做自增操作 count = count+1; // 返回原始值 return temp;}      于是第一次循環后 count 的值還是 0, 其他 9 次的循環也是一樣的, 最終你會發現 count的值始終沒有改變, 仍然保持著最初的狀態。     解 決 方 法 很 簡 單, 只 要 把“count=count++” 修 改 為“count++” 即 可。 該 問 題 在 不 同 的 語 言 環 境 有 不 同 的 實 現 : C++ 中“count=count++” 與“count++”是等效的, 而在 php 中則保持著與 Java 相同的處理方式。 每種語言對自增的實現方式各不同, 讀者有興趣可以多找幾種語言測試一下, 思考一下原理。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岳普湖县| 青田县| 丰顺县| 临桂县| 龙山县| 故城县| 上思县| 若羌县| 库伦旗| 尚义县| 嘉禾县| 大化| 朝阳县| 永寿县| 兰坪| 新蔡县| 湘阴县| 垦利县| 长泰县| 莱阳市| 绥中县| 涞源县| 富平县| 云霄县| 收藏| 甘德县| 夏津县| 牙克石市| 女性| 贵溪市| 芦山县| 广宗县| 建水县| 鄂尔多斯市| 佛冈县| 新宁县| 涞源县| 安阳县| 曲麻莱县| 新昌县| 安岳县|