Phát biểu lặp for có 2 dạng. Đầu tiên là lặp dạng số, ví dụ, > for count = 1,3 do print(count†) end -- lặp dạng số
123
Thứ 2 là lặp trình tự, ví đụ xuất nội dung của 1 bảng. Ở đây, for được truyền vào 1 hàm lặp là pairsQ, mục đích là cung cấp giá trị cho mỗi lần lặp:
> for key,value In pairs({ 10, math.pi, "banana”}) do print(key, value) end 110
2 3.1415926535898 3 banana 3 banana
Cấp số dạng sỐ (Numeric progression)
Dạng câp sô dạng sô của for có câu trúc: ,
for variable = từ biểu thức, đến biểu thức J, bước nháy] do khối lệnh end
Phát biểu đặt giá trị của biến vào rừ_biểu ức trước khi đi vào khối lệnh for. Khối lệnh chỉ được truy cập vào nếu biến không vượt quá giá trị
cuôi, đền_ biểu thức. Điêu này bam gôm lần đầu vòng lặp được lặp qua. Môi lần bước nhảy được thêm vào biên. Việc chỉ rõ biêu thức bước
nhảy là tùy biên (có thê có, có thê không). Nêu không chỉ rõ thì sử dụng giá trị là 1. Ví dụ,
> for 1 = 1,3 do print() end -- đêm từ 1 đên 3
123
> for ¡ = 3,1 đo print() end — đếm từ 3 về 1 trong bước nhảy 1
Zero 1(erationsl , Ộ
> for 1 = 3,1, -1 do print() end -- đêm ngược từ 3 vê 1
321
> for i=1,0,-0.25 do print() end — Chúng ta không bị giới hạn trong các số nguyên
1 0.75 0.75 0.5 0.25 0
Chú ý rằng biến ¡ sẽ chỉ có giá trị trong phạm vi của vòng lặp for, ví dụ: prmt() -- sau đoạn code trên ml
for 1= el,e2,e3 do myFunction(1) end tương đương đoạn code Lua sau: do
local 1, limit, step = tonumber(eÏl), tonumber(e2), tonumber(e3) or l
1ƒ not (¡ and limit and step) then error() end
while (step>0 and i<=limit) or (step<=0 and I>=limt) do myFunction(1) 1 = I + step
end end
Các công cụ lặp (Iterators) Dạng lặp for thứ 2 có cấu trúc:
for biển ý, biển) in danh sách biểu thức do khối lệnh end