學習lua兩天,發覺和以前學習c、c++的感覺差別有點大。。。
for i = 1, 5 do
print(i)
if i == 2 then
i = i+1
endend
執行發現沒有起作用:
123
45
在lua程式設計裡面說:
迴圈過程中不要改變控制變數的值,那樣做的結果是不可預知的。如果要退出迴圈,使用break語句。
看來控制變數的i和迴圈體的i不是同乙個值
看了手冊,感覺可以用範圍for和迭代器完成這個任務:
local v = 1
for value in function()
print(v)
if v == 2 then
v = v + 2
else
v = v + 1
endreturn v
enddo if value > 5 then
break
endend
執行發現符合預期想法:
124
5
完成這個需求就要用到閉包,感覺有點蛋疼,但從這裡面也能感到這個lua的函式作為變數的一種有點強
迴圈陣列改變結構(橫向變縱向)
方法一 tbodyarr 150,73,20,140,90,40,newarr con newarr最終結果,con中間變數 for var m 0 m tbodyarr 0 length m newarr.push con console.log newarr 方法二 var alldataarr...
Lua學習筆記 day2 Lua迴圈 流程控制
一 lua迴圈 lua提供以下幾種迴圈方式 while 首先判斷終止條件為true時,然後再執行迴圈體語句 for 迴圈體執行的次數在for中指定 repeat.until 首先執行迴圈體,然後判斷終止條件,終止條件為true時,迴圈退出 迴圈巢狀 迴圈控制語句 break 退出當前迴圈或語句 wh...
Lua筆記2 變數 迴圈和流程控制
變數使用前必須宣告,lua的變數預設全域性的,哪怕該變數在函式中。區域性變數使用local進行宣告,僅在作用域中有效。函式中宣告的變數,在函式呼叫前是不會起作用的。示例 function foo n a 3 n local b 5 n endprint a print b foo 10 print ...