透過例子學習Lua(2)---Lua流程控制(轉)
透過例子學習Lua(2)---Lua流程控制(轉)[@more@] 1. 函式的使用 以下程式演示瞭如何在Lua中使用函式, 及區域性變數 例e02.lua -- functions function pythagorean(a, b) local c2 = a^2 + b^2 return sqrt(c2) end print(pythagorean(3,4)) 執行結果 5 程式說明 在Lua中函式的定義格式為: function 函式名(引數) ... end 與Pascal語言不同, end不需要與begin配對, 只需要在函式結束後打個end就可以了. 本例函式的作用是已知直角三角形直角邊, 求斜邊長度. 引數a,b分別表示直角邊長, 在函式內定義了local形變數用於儲存斜邊的平方. 與C語言相同, 定義在函式內的代 碼不會被直接執行, 只有主程式呼叫時才會被執行. local表示定義一個區域性變數, 如果不加local剛表示c2為一個全域性變數, local的作用域 是在最裡層的end和其配對的關鍵字之間, 如if ... end, while ... end等。全域性變數的 作用域是整個程式。 2. 迴圈語句 例e03.lua -- Loops for i=1,5 do print("i is now " .. i) end 執行結果 i is now 1 i is now 2 i is now 3 i is now 4 i is now 5 程式說明 這裡偶們用到了for語句 for 變數 = 引數1, 引數2, 引數3 do 迴圈體 end 變數將以引數3為步長, 由引數1變化到引數2 例如: for i=1,f(x) do print(i) end for i=10,1,-1 do print(i) end 這裡print("i is now " .. i)中,偶們用到了..,這是用來連線兩個字串的, 偶在(1)的試試看中提到的,不知道你們答對了沒有。 雖然這裡i是一個整型量,Lua在處理的時候會自動轉成字串型,不需偶們費心。 3. 條件分支語句 例e04.lua -- Loops and conditionals for i=1,5 do print(“i is now “ .. i) if i < 2 then print(“small”) elseif i < 4 then print(“medium”) else print(“big”) end end 執行結果 i is now 1 small i is now 2 medium i is now 3 medium i is now 4 big i is now 5 big 程式說明 if else用法比較簡單, 類似於C語言, 不過此處需要注意的是整個if只需要一個end, 哪怕用了多個elseif, 也是一個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 else error("invalid operation") end 4.試試看 Lua中除了for迴圈以外, 還支援多種迴圈, 請用while...do和repeat...until改寫本文中的for程
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-951634/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 透過例子學習Lua(3)----Lua資料結構(轉)資料結構
- 透過例子學習Lua(5)--Lua與C的互動(轉)
- 透過例子學習Lua(6)--C/C++中用Lua函式(轉)C++函式
- 透過例子學習Lua(4)--函式的呼叫(轉)函式
- 透過例子學習Lua(7)--呼叫C/C++函式(轉)C++函式
- lua 學習總結
- Lua學習筆記筆記
- Lua遊戲開發(三)---Lua語言學習(上)遊戲開發
- Lua 學習筆記(上)筆記
- 學習Lua的意義
- 從sysbench中學習Lua
- Lua學習筆記(一)筆記
- Lua流程控制語句if else的使用詳解
- lua學習: lua及函數語言程式設計語言函數程式設計
- Lua學習(二)物件導向物件
- redis學習(八) Lua語法Redis
- Lua5.3學習筆記筆記
- lua課程學習筆記筆記
- 《Lua-in-ConTeXt》09:學一點 LuaContext
- 熱更新語言--lua學習筆記筆記
- 0基礎lua學習(十四)封裝封裝
- Lua學習筆記--物件導向(三)筆記物件
- [2]自定義Lua解析方式
- redis原始碼學習之lua執行原理Redis原始碼
- lua版promise實現3 - 條件判斷例子Promise
- Lua 特性
- wrk(2)- Lua 指令碼的使用指令碼
- C#與Lua語言學習對比一C#
- Lua學習筆記--迭代器和協程(二)筆記
- Lua遊戲開發(一)---Lua語言遊戲開發
- lua~IDEA中除錯lua指令碼Idea除錯指令碼
- Lua的function、closure和upvalue(轉)Function
- Redis基礎知識(學習筆記21--Lua 指令碼語言2)Redis筆記指令碼
- 【Lua】VSCode 搭建 Lua 開發環境VSCode開發環境
- Redis與Lua及Redis-py應用LuaRedis
- lua學習之入門(二)----基礎語法1
- lua 基礎 2 型別和值型別
- Lua math庫