第一版是針對 Lua 5.0 編寫的。雖然在很大程度上仍然適用於後續版本,但仍有一些差異。
第四版針對 Lua 5.3,可在 Amazon 和其他書店購買。
購買這本書,您也協助 支持 Lua 專案。
![]() |
用 Lua 程式設計 | ![]() |
第一部分。語言 第 4 章。陳述式 |
for 陳述式有兩個變體:數值 for 和一般 for。
數值 for 的語法如下
for var=exp1,exp2,exp3 do something end此迴圈會針對
var
從 exp1
到 exp2
的每個值執行 something
,並使用 exp3
作為遞增 var
的步長。第三個運算式是選用的;如果沒有,Lua 會假設步長值為一。以下是一些此類迴圈的典型範例
for i=1,f(x) do print(i) end for i=10,1,-1 do print(i) end
for 迴圈有一些細微差別,您應該學習這些差別才能善加利用它。首先,所有三個運算式會在迴圈開始前評估一次。例如,在第一個範例中,f(x)
只會呼叫一次。其次,控制變數是由 for 陳述式自動宣告的局部變數,而且只會在迴圈內部可見。一個常見的錯誤是假設迴圈結束後變數仍然存在
for i=1,10 do print(i) end max = i -- probably wrong! `i' here is global如果您需要在迴圈後取得控制變數的值(通常是在中斷迴圈時),您必須將此值儲存到另一個變數中
-- find a value in a list local found = nil for i=1,a.n do if a[i] == value then found = i -- save value of `i' break end end print(found)第三,您絕不應該變更控制變數的值:此類變更的效果是不可預測的。如果您想要在正常終止前中斷 for 迴圈,請使用 break。
版權所有 © 2003–2004 Roberto Ierusalimschy。保留所有權利。 | ![]() |