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

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

警惕自增的陷阱

2019-11-11 07:53:33
字體:
來源:轉載
供稿:網友
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 相同的處理方式。 每種語言對自增的實現方式各不同, 讀者有興趣可以多找幾種語言測試一下, 思考一下原理。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 什邡市| 白玉县| 昭平县| 吉隆县| 深州市| 临清市| 方正县| 仁寿县| 利川市| 东至县| 伊吾县| 北票市| 东安县| 松阳县| 汉寿县| 南江县| 白沙| 湟源县| 嘉义县| 彭阳县| 固始县| 大宁县| 桃园县| 德庆县| 枣阳市| 互助| 伊宁市| 吉安市| 东光县| 重庆市| 青州市| 裕民县| 务川| 噶尔县| 花垣县| 缙云县| 元谋县| 麦盖提县| 莱芜市| 潮州市| 荃湾区|