for (int i=0;i<5 ;i++){}與for (int i=0;i<5 ;++i){}
是一樣的。
在書(shū)本上,++i是先自加,i++是后自加。




問(wèn)題處在哪里呢?
原來(lái)是for循環(huán)的執(zhí)行過(guò)程上有些不同。
例如:for(exp 1;exp 2; exp 3){ exp 4;}
它的過(guò)程是這樣的,首先循環(huán)是執(zhí)行exp 1,完成它的初始化,再判斷exp 2是否為真,若為真,則執(zhí)行循環(huán)體exp 4,執(zhí)行完后再回到exp 3,計(jì)算并修改循環(huán)條件,第一輪循環(huán)就結(jié)束了。第二輪的開(kāi)始是從exp 2開(kāi)始,若為真,繼續(xù)執(zhí)行exp 4,然后回到exp 3。當(dāng)再次進(jìn)入exp 2時(shí),表達(dá)式為false,跳出循環(huán)體。
問(wèn)題就是出在這里,exp 3相當(dāng)與一個(gè)計(jì)數(shù)器的工作,當(dāng)執(zhí)行完畢后exp 3無(wú)論是++i還是i++,其結(jié)果都是一樣的。