麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

警惕自增的陷阱

2019-11-14 09:18:58
字體:
供稿:網(wǎng)友
public static void main(String[] args) { int count =0; for(int i=0;i<10;i++){ count=count++; } System.out.PRintln("count="+count); }       運(yùn)行結(jié)果是 count 等于 0。 為什么呢?       count++ 是一個(gè)表達(dá)式, 是有返回值的, 它的返回值就是 count 自加前的值, java 對(duì)自加是這樣處理的 : 首先把 count 的值( 注意是值, 不是引用) 拷貝到一個(gè)臨時(shí)變量區(qū), 然后對(duì) count 變量加 1, 最后返回臨時(shí)變量區(qū)的值。 程序第一次循環(huán)時(shí)的詳細(xì)處理步驟如下:      步驟 1 JVM 把 count 值( 其值是 0) 拷貝到臨時(shí)變量區(qū)。      步驟 2 count 值加 1, 這時(shí)候 count 的值是 1。      步驟 3 返回臨時(shí)變量區(qū)的值, 注意這個(gè)值是 0, 沒修改過。      步驟 4 返回值賦值給 count, 此時(shí) count 值被重置成 0。“count=count++”這條語句可以按照如下代碼來理解:public static int mockAdd(int count){ // 先保存初始值 int temp =count; // 做自增操作 count = count+1; // 返回原始值 return temp;}      于是第一次循環(huán)后 count 的值還是 0, 其他 9 次的循環(huán)也是一樣的, 最終你會(huì)發(fā)現(xiàn) count的值始終沒有改變, 仍然保持著最初的狀態(tài)。     解 決 方 法 很 簡(jiǎn) 單, 只 要 把“count=count++” 修 改 為“count++” 即 可。 該 問 題 在 不 同 的 語 言 環(huán) 境 有 不 同 的 實(shí) 現(xiàn) : C++ 中“count=count++” 與“count++”是等效的, 而在 php 中則保持著與 Java 相同的處理方式。 每種語言對(duì)自增的實(shí)現(xiàn)方式各不同, 讀者有興趣可以多找?guī)追N語言測(cè)試一下, 思考一下原理。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 精国产品一区二区三区 | 久久久久久麻豆 | 久久综合色区 | av在线免费观看不卡 | 黄色欧美精品 | 99re热视频这里只精品 | 成年免费看 | 日韩 综合| 国产精品91在线 | 日韩精品羞羞答答 | 久久国产不卡 | 久久精品男人 | 欧美视屏一区二区 | 国产1区在线 | 日美黄色片 | 羞羞色院91精品网站 | 丰满年轻岳中文字幕一区二区 | 毛片视频网站在线观看 | 99国产精品自拍 | 国产精品免费大片 | 欧美视频一区二区三区四区 | 黄网站色成年大片免费高 | 一本到免费视频 | 露脸各种姿势啪啪的清纯美女 | 精品国产一区二区三 | 欧美视频在线一区二区三区 | 日韩视频―中文字幕 | 欧美一级片在线 | 欧美熟videos肥婆 | 91九色丨porny丨国产jk | 男女做性免费网站 | 久久久久久久久国产 | 日韩黄色片免费看 | 亚洲一区二区中文字幕在线观看 | 狼伊千合综网中文 | 国产外围在线 | 一级做a爱片久久 | 懂色av懂色aⅴ精彩av | 91精品国产一区二区三区四区在线 | 久久精品超碰 | 久久超碰99 |