迴圈 (Loop)
你可以在以下三種迴圈形式中,選擇其中一種,讓一段程式碼區塊重複被執行。
while 會在執行前先測試執行條件,如果執行條件為 false,則會中斷,反之若執行條件為 true 則繼續執行:
myNumber = 1
while myNumber < 10 do
    print( myNumber )
    myNumber = myNumber + 1
end
repeat 會在每一次執行後才去判斷要不要繼續執行:
myNumber = 1
repeat
    print( myNumber )
    myNumber = myNumber + 1
until myNumber == 10
for 透過對數值的操作:像是累加或遞減,以決定要如何重複執行一段程式碼,程式碼將執行到該數值到達設定的限制為止:
for myValue = 1, 10 do
    print( myValue )
end
這個 loop 會印出數字 1 ~ 10,你也可以指定第三個參數,讓該值每次以非 1 的差距累加或遞減:
for myValue = 10, 1, -1 do
    print( myValue )
end
這段程式碼會依序將 10 ~ 1 印出,每次以 1 的差距遞減。當然你也可以根據其他值去遞減,像是 -12 或是 0.75
接著我們來看看下面的狀況:
myValue = 100
for myValue = 1, 10 do
    print( myValue )
end
print( myValue )
當你去執行這段程式碼,可能會覺得很奇怪。首先 for 迴圈中的 print() 會依序印出 1~10 ,但是最後的 print() 卻會印出 100。這是由於 scope 的特性與 for 迴圈中發生的特殊現象導致的。定義在 for 迴圈中,作為累加器的變數對為本地 (local) 變數,只有在 for 迴圈內的程式碼區塊存取得到。當離開 for 迴圈時,存取的自然就是原始版本的變數了 (第一行定義的變數)。