迴圈 (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 迴圈時,存取的自然就是原始版本的變數了 (第一行定義的變數)。

results matching ""

    No results matching ""