雖然一般情況下,語(yǔ)句都是順序執(zhí)行的:函數(shù)內(nèi)的第一條語(yǔ)句先執(zhí)行,然后是第二條,依次類推。 但是還是可能存在需要執(zhí)行一段代碼多次的情況。
為此編程語(yǔ)言提供各式各樣的控制結(jié)構(gòu)實(shí)現(xiàn)復(fù)雜的程序執(zhí)行路徑。
其中,循環(huán)語(yǔ)句可以讓我們可以執(zhí)行一條或一組語(yǔ)句多次。下圖中所描述的是大多數(shù)語(yǔ)言中循環(huán)語(yǔ)句的形式:
http://wiki.jikexueyuan.com/project/lua/images/loop.jpg" alt="" />
Lua 語(yǔ)言提供了如下幾種循環(huán)結(jié)構(gòu)語(yǔ)句。點(diǎn)擊鏈接可查看詳細(xì)說(shuō)明。
| 循環(huán)類型 | 描述 |
|---|---|
| while 循環(huán) | 先檢測(cè)條件,條件為真時(shí)再執(zhí)行循環(huán)體,直到條件為假時(shí)結(jié)束。 |
| for 循環(huán) | 執(zhí)行一個(gè)語(yǔ)句序列多次,可以簡(jiǎn)化管理循環(huán)變量的代碼。 |
| repeat...until 循環(huán) | 重復(fù)執(zhí)行一組代碼語(yǔ)句,直到 until 條件為真為止。 |
| 嵌套循環(huán) | 可以在一個(gè)循環(huán)語(yǔ)句中再使用一個(gè)循環(huán)語(yǔ)句。 |
循環(huán)控制語(yǔ)句改變循環(huán)正常的執(zhí)行順序。當(dāng)離開(kāi)一個(gè)作用域時(shí),在該作用域內(nèi)自動(dòng)創(chuàng)建的對(duì)象都會(huì)被自動(dòng)銷毀。
Lua 支持如下所示的循環(huán)控制語(yǔ)句。點(diǎn)擊下面的鏈接查看詳細(xì)內(nèi)容:
| 循環(huán)控制語(yǔ)句 | 描述 |
|---|---|
| break | break 語(yǔ)句結(jié)束循環(huán),并立即跳轉(zhuǎn)至循環(huán)或 switch 語(yǔ)句后的第一條語(yǔ)句處開(kāi)始執(zhí)行。 |
如果循環(huán)條件永遠(yuǎn)不可能為假,則此循環(huán)為無(wú)限循環(huán)。while 語(yǔ)句經(jīng)常被當(dāng)作無(wú)限循環(huán)語(yǔ)句使用。因?yàn)槲覀兛梢灾苯訉⑵錀l件設(shè)置為真,這樣 while 就會(huì)一直循環(huán)下去。在無(wú)限循環(huán)中,可以使用 break 跳出循環(huán)。
while( true )
do
print("This loop will run forever.")
end