3.1.2 使用for循環(huán)計(jì)數(shù)
第一個(gè)for循環(huán)從0計(jì)數(shù)到9,其初始語(yǔ)句如下:
for (int i = 0; i < 10; ++i)
初始化語(yǔ)句int i = 0聲明了i并將其初始化為0。表達(dá)式i < 10表示只要i小于10,循環(huán)就繼續(xù)。最后的action語(yǔ)句++i使i在每次循環(huán)體結(jié)束后都遞增。結(jié)果是循環(huán)迭代10次,針對(duì)0~9中的數(shù)每個(gè)一次。每次迭代過(guò)程中,循環(huán)體都顯示i的值。
接下來(lái)的for循環(huán)從9向下計(jì)數(shù)到0,其初始語(yǔ)句如下:
for (int i = 9; i >= 0; --i)
其中,i的初始值為9,且只要i大于等于0,循環(huán)就將繼續(xù)。每次循環(huán)體結(jié)束時(shí),i值遞減。結(jié)果是循環(huán)顯示的值為9~0。
接下來(lái)的循環(huán)從0計(jì)數(shù)到50,每次加5,其初始語(yǔ)句如下:
for (int i = 0; i <= 50; i += 5)
其中,i的初始值為0,且只要i小于等于50,循環(huán)就將繼續(xù)。但要注意action語(yǔ)句i += 5在循環(huán)體結(jié)束后使i增加5。結(jié)果是循環(huán)顯示0、5、10、15等。表達(dá)式i<=50表示只要i小于等于50,則執(zhí)行循環(huán)體。
可以使用任意值初始化計(jì)數(shù)器變量、創(chuàng)建測(cè)試條件以及更新計(jì)數(shù)器變量。然而,最常見(jiàn)的是讓計(jì)數(shù)器從零開(kāi)始計(jì)數(shù),且在每次循環(huán)迭代后增加1。
最后,在介紹while循環(huán)時(shí)關(guān)于無(wú)限循環(huán)的警告同樣適用于for循環(huán)。要確保循環(huán)能終止,否則玩家會(huì)很不樂(lè)意。
3.1.3 在for循環(huán)中使用空語(yǔ)句
在for循環(huán)中可以使用空語(yǔ)句,如下面這個(gè)循環(huán)所示:
for ( ; count < 10; )
initialization和action語(yǔ)句中使用的是空語(yǔ)句。這樣做是合法的,因?yàn)檠h(huán)之前就聲明和初始化了count,并在循環(huán)體內(nèi)部增加它的值。該循環(huán)顯示的整數(shù)序列和程序中的第一個(gè)循環(huán)顯示的相同。盡管該循環(huán)看起來(lái)有些奇怪,但它絕對(duì)是合法的。
提示
游戲程序員的習(xí)慣因人而異。在第2章我們了解到,可以使用while (true)讓循環(huán)一直運(yùn)行,直到遇到退出語(yǔ)句(如break)。有些程序員喜歡用for ( ; ; )開(kāi)頭的for循環(huán)來(lái)創(chuàng)建這類(lèi)循環(huán)。因?yàn)檠h(huán)中的測(cè)試表達(dá)式是空語(yǔ)句,循環(huán)將一直運(yùn)行,直到遇到某個(gè)退出語(yǔ)句。