“参考Lua游戏开发实践指南”
Lua提供两种控制结构(数字型和通用型)--Lua中的for语句的索引是从1开始的
数字型:
一个简单的示例如下
1 for indx = 1, 10 do 2 print(indx) 3 end
do关键字标记程序块的开始,end标记程序块的结束。
用户可以在第三个参数中定义“step”的值。例如:
1 for indx = 10, 1 -1 do --this counts backwards 2 print(indx) 3 end 4 for indx = 1, 100, 2 do --this counts forwards by 2s 5 print(indx) 6 end
注意:
1)循环次数只是在第一次执行时确定,因此,就算用户更改了参数的值也不会影响最终循环的次数。
2)循环结构中的变量时局部变量,一旦循环结束就会被清除。如果想保存他们的值,那么必须使用全局变量或者更高级别的局部变量。
通用型:
PS: pairs()函数可以遍历table中的每一个元素。
在for循环控制结构中,pairs()函数遍历整个table(即使不知道长度),并返回索引值和每一个元素的值。
1 myNames = {"Fred", "Ethel", "Lucy", "Ricky", "Rockey", "Betsy", "Bill"} 2 for index, value in pairs(myNames) do 3 print(index, value) 4 end
在for循环控制结构中用更传统的方式实现同样的功能,即使不知道table的大小:
1 for index = 1, table.getn(myNames) do 2 print(index, myNames[index]) 3 end
pairs()函数在遍历非数字索引的table时非常有用,示例:
1 myData = {} 2 myData.name = "Billy" 3 myData.interest = "Wind surfing" 4 myData.quote = "Cold out, eh?" 5 myData.shoesize = 11 6 for index, value in pairs(myData) do 7 print(index, value) 8 end
(终端)运行结果:
1 interest Wind surfing 2 shoesize 11 3 name Billy 4 quote Cold out, eh?