Lua基礎教程之語句

賦值

  基礎賦值

a = 10 
tab.name = "name"

  多重賦值

a,b = 10,"abc" 
a,b = b,a --交換兩個變量 多重賦值時,注意左右格數不匹配的情況 
a,b,c = 0,1 print(a,b,c) 
輸出 
0,1,nil 
a,b,c = 0 print(a,b,c) 
輸出 
nil.nil,0

局部變量與塊(block)

  使用local創建局部變量。

local i =1 --局部變量 
m = 20 --全局變量

  局部變量的作用域僅限於聲明它們的那個塊。一個塊是一個控制結構的執行體、或者是一個函數的執行體再或者是一個程序塊。

x = 10            --全局變量
local i =1
while i<= x do
    local x = i*2 --x爲局部變量
    print(x)      --輸出2、 4、 6 、8..
    i = i+1
end

if i > 20 then
    local x       --局部變量
    x = 20        
    print(x+2)    --輸出22
else
    print(x)      --全局變量 輸出10
end  

  一個局部變量通常會隨着其作用域的結束而消失,GC便可釋放其值。訪問局部變量速度比全局變量速度快。

控制結構

  if then else 流程控制

local a = 20
if a < 10 then
    print("the number less than 10")
elseif a < 15 then
    print("the number between 10 and 15")
elseif a < 20 then
    print("the number between 15 and 20")
else
    print("the number more than 20")
end

  由於lua不支持switch語句,所以這一連串的if -elseif 代碼是很常見的。

  while

  與其他語言中的while不同,lua先測試while條件。如果條件爲false,那麼循環接結束。

local i=1
while i < 20 do
    print("name"..i)
    i = i+1 -- lua中沒有自增++ 自減--運算符
end

  repeat

  一條repeat -until語句重複執行知道條件爲真結束

local i = 1
repeat
    i = i+1
    print("name"..i)
until i > 20

  for

  數字型for

for var = exp1,exp2,exp3 do
    <執行體>
end
var 從exp1變化到exp2,每次變化以exp3作爲步長,並執行一次執行體
其中exp3是可選的,默認爲1
for循環打印前十的偶數
for i = 2,10,2 do
    print(i)
end

  泛型for

  通過迭代器函數來遍歷所有值

local tab = {"one","two","three"}
for i,v in ipairs(tab) do
    print(i,v)
end
輸出
1   one
2   two
3   three

  注意:

  pairs遍歷表中全部key,value

  ipairs從下標爲1開始遍歷,然後下標累加1,如果某個下標元素不存在就終止遍歷。這就導致如 果下標不連續或者不是從1開始的表就會中斷或者遍歷不到元素。即ipairs必須按照索引遞增遍歷。

  break與return

  break和return語句用於跳出當前塊。並且break和return只能是一個塊的最後一條語句。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章