Lua中的語句

2022-07-01 21:15:10 字數 2532 閱讀 3881

【賦值】

賦值的基本含義是修改乙個變數或乙個table中字段的值,這個和其它語言沒有多少區別,但是對於lua,有乙個特性,它允許「多重賦值」,也就是一下子將多個值賦予多個變數,例如以下**:

local x1, x2 = 2, 4

print(x1) --

>2

print(x2) --

>4

在多重賦值中,lua先對等號右邊的所有元素求值,然後才執行賦值,例如以下用法,可以非常簡便的交換兩個元素的值:

local x1, x2 = 2, 4

x1, x2 =x2, x1

print(x1) --

>4

print(x2) --

>2

【區域性變數與塊】

相對於全域性變數,lua同時也提供了區域性變數。通過local語句來建立區域性變數:

i = 10

-->全域性變數

local i = 10

-->區域性變數

在lua中,區域性變數也是有作用範圍的,也就是說,出了區域性變數的作用範圍,區域性變數就會失去作用,這個和c++等高階語言是一樣的道理。我們在程式設計的過程中,也可以使用do…end來顯示的宣告乙個塊,例如以下**:

do

local a1 = 10

local a2 = 10

end--

>a1和a2的作用域到此結束

至於使用區域性變數和全域性變數,關係到程式設計風格和實際需要,這裡不做多說。

【控制結構】

幾乎所有的語言都有控制結構,同樣,對於lua的控制結構是非常簡單的。lua提供了用於條件執行的if,迴圈的while、repeat和for。所有的控制結構都有乙個顯式的終止符:if、for和while以end作為結尾,repeat以until作為結尾。特別注意,在lua中是不支援switch結構的。

if then else

if語句先測試其條件,然後根據測試結果執行then部分或者else部分,else部分是可選的。如果要編寫巢狀的if,可以使用elseif,下面通過**示例來說明if的使用。

if a < 0

then a = 0

endif a < b then retuan a else

return b end

if op == "+"

then

r = a +b

elseif op == "-"

then

r = a -b

elseif op == "*"

then

r = a *b

elseif op == "/"

then

r = a /b

end

while

lua中的while與其它語言是一樣的,示例**如下:

local a = 10

while a > 0

doa = a - 1

--do something else

end

repeat

repeat就好比c++中的do…while結構,迴圈體至少會執行一次。repeat-until語句重複執行其迴圈體直到條件為真時結束。

在lua中有兩種for語句的形式:數字型for和泛型for

數字型for

數字型for的語法如下:

for var = exp1, exp2, exp3 do

--do something

end

var從exp1變化到exp2,每次變化都以exp3作為步長進行遞增,並執行一次do…end之間的**。第三個表示式exp3是可選的,若不指定的話,lua會將步長預設為1。例如以下**:

for var = 1, 10

doprint

(var)

endfor var = 10, 1, -1

doprint

(var)

end

在使用for時,需要注意以下兩點:

1.for的exp1,exp2和exp3,這三個表示式是在迴圈開始前一次性求值得;並不會每次迴圈都進行求值;

2.控制變數var會被自動的宣告為for語句的區域性變數,並且僅在迴圈體內可見。

泛型for

泛型for迴圈通過乙個迭代器函式來遍歷所有值。在lua的基礎庫中提供了ipairs,這是乙個用於遍歷陣列的迭代器函式。從外觀上看泛型for比較簡單,但其實它是非常強大的。通過不同的迭代器,幾乎可以遍歷所有的東西。標準庫提供了幾種迭代器,包括用於迭代檔案中每行的io.lines、迭代table元素的pairs、迭代陣列元素的ipairs和迭代字串中單詞的string.gmatch等。當然了,我們也可以編寫自己的迭代器,在以後的文章中,我會總結如何編寫迭代器的。

【break與return】

break和return語句用於跳出當前的塊。這裡的break、return和c++等語言是一樣的。break語句用於結束乙個迴圈,return語句用於從乙個函式中返回結果。

Lua中的變數型別與語句學習總結

1.lua型別 1.1 基本型別 lua是一種動態型別語言,沒有型別定義的語法。lua一共有8種基礎型別 nil 空 boolean 布林 number 數字 string 字串 userdata 自定義型別 function 函式 thread 執行緒 table 表 函式type可根據乙個值返回...

Lua控制結構語句

控制語句分為條件判斷,迴圈執行和轉向。大體上,跟c的差別不大。條件判斷 使用時注意在if或者elseif的條件後面,新增then。在結束的時候,新增end。if判斷 if 1 then print 1 end if else 判斷 if false then print true else prin...

Lua學習(三)語句

color blue 1 賦值語句 color a 1 a,b 10,2 x 多重賦值 x,y,z 1,2 x 1,y 2,z nil x,y y,x 交換x,y值 color blue 2 區域性變數和塊 block color 區域性變數 用 local 定義,作用域僅限於宣告它的那個塊 塊 可...