1. 程式人生 > >Lua for迴圈誤區

Lua for迴圈誤區

function f()
    local i;
    for i = 1, 10,1 do
        print("Before Add i = " .. i);

        i = i + i;
        print("after Add i = " .. i);
    end
end

f();

如上程式碼, i列印的結果為1,2,2,3,3,4,4,5,5,6,6,7,7,8,8…
也就是說 i = i + 1 不起作用,在for迴圈執行一次之後i 的值會重置為當前迴圈的索引。
另一種說法,Lua裡面的for不是條件判斷,無論對i 怎麼操作,這裡的迴圈總會執行10次

PS: 如果想做i的自增操作,那麼就…改用While吧,用個變數自己做條件判斷!