今天在調式代碼時發現了一個問題。
          for (int i=0;i<5 ;i++){}與for (int i=0;i<5 ;++i){}
          是一樣的。
          在書本上,++i是先自加,i++是后自加。
          int i = 0
          int x = i++
          很明顯x得到的值是0,然后i自加的值是1。
          int i = 0;
          int x = ++i;
          這一段中x的值為1。
          問題處在哪里呢?
          原來是for循環的執行過程上有些不同。
          例如:for(exp 1;exp 2; exp 3){ exp 4;}
          它的過程是這樣的,首先循環是執行exp 1,完成它的初始化,再判斷exp 2是否為真,若為真,則執行循環體exp 4,執行完后再回到exp 3,計算并修改循環條件,第一輪循環就結束了。第二輪的開始是從exp 2開始,若為真,繼續執行exp 4,然后回到exp 3。當再次進入exp 2時,表達式為false,跳出循環體。
          問題就是出在這里,exp 3相當與一個計數器的工作,當執行完畢后exp 3無論是++i還是i++,其結果都是一樣的。
          posted on 2007-10-30 15:59 湘江夜游神 閱讀(137) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          Locations of visitors to this page

          主站蜘蛛池模板: 济源市| 嘉兴市| 永吉县| 新兴县| 禄丰县| 屯门区| 惠水县| 文成县| 兖州市| 旅游| 抚顺市| 安乡县| 南溪县| 玉树县| 澄江县| 英吉沙县| 沂源县| 松溪县| 北宁市| 临泽县| 临高县| 政和县| 伽师县| 云林县| 和平县| 砀山县| 玛多县| 罗山县| 循化| 封丘县| 铁岭市| 西宁市| 遂昌县| 都江堰市| 克东县| 汨罗市| 开江县| 革吉县| 柯坪县| 伊吾县| 玉溪市|