2016年1月23日 星期六

Lua: 流程控制

for  --> 一般的用法

--> 印出1~5的數字
for i=1, 5 do
  print(i)
end

--> 印出1, 3, 5, 7, 9,第三個參數step也可以是負數
for i=1, 10, 2 do
  print(i)
end

for  --> 像 for...each的用法 (iterator)

a = {'a', 'b', 'c', 'd'}
for i, v in ipairs(a) do
  print('index('..i..') = '..v)
end
--[[ 結果印出如下
index(1) = a
index(2) = b
index(3) = c
index(4) = d
]]

而使用 pairs也是一樣的結果? --> 這個再查一下…
for k,j in pairs(a) do
  print(k, j)
end
--[[ 結果如下
1       a
2       b
3       c
4       d
]]

while
語法為
x=1
while x<5 do
  x=x+1
  print(x)
end
--[[結果如下
2
3
4
5
]]

可以用 break 跳出迴圈,但沒有continue ?

此外也有repeat的loop寫法,不過我想固定使用一種就好了,免的搞亂了…畢竟有時才寫一下Lua而已,簡單是王道
repeat
  x=x+1
  print(x)
until (x>5)
--[[結果為
2
3
4
5
6
]]

if...then...else...end
例子如下
if(5>3) then
  print(5)
else
  print(3)
end
--> 結果為 5

也有elseif的用法
x = 70
if(x>90) then print(">90")
elseif(x>60) then print(">60")
else print("<60")
end
--> 60



沒有留言:

張貼留言