示例代码:
赋值语句:赋值是改变一个变量的值和改变表域的最基本的方法。
- a,b,c=0,1
- print(a,b,c) --a=0,b=1,c=nil
- --------------------------------------------------------
- a,b=a+1,b+1,b+2
- print(a,b) --a=1,b=2
- --------------------------------------------------------
- a,b,c=0
- print(a,b,c) --a=0,b=nil,c=nil
- --------------------------------------------------------
- a,b,c=0,1,2
- print(a,b,c) --a=0,b=1,c=2
- --------------------------------------------------------
- a,b=f() --f()函数返回值赋值给a
局部变量和代码块(block)
代码块:指一个控制结构内,一个函数体,或者一个 chunk(变量被声明的那个文件或者文本串)
- x=10;
- local i=1 --local创建局部变量
- while i<=x do
- local x=i*2 --局部变量x只在while代码块内有效
- print(x)
- i=i+1
- end
控制结构语句:条件表达式结果可以是任何值,false,nil为假,其他值为真
if语句:三种形式
- if conditions then
- then-part
- end;
- -----------------------------------------------------------------
- if conditions then
- then-part
- else
- else-part
- end;
- ----------------------------------------------------------------
- if conditions then
- then-part
- elseif conditions then
- elseif-part
- .. --->多个 elseif
- else
- else-part
- end;
- ---------------------------------------------------------------
while语句:
- while condition do
- statements;
- end;
- ----------------------------------------------------------
- local i=1
- while a[i] do
- if a[i]==v then
- break
- end
- i=i+1
- end
repeat-until语句:
- repeat
- statements;
- until conditions;
for语句:
- for var=exp1,exp2,exp3 do
- loop-part
- end
- ---------------------------------------------
- for i=1,10,1 do --可以把第二个1换成-1,2,3,等查看一下结果默认是1可以省略不写
- print(i) --打印1-10 i是局部变量只在for代码块内有效
- end
- max=i --i是全局变量,没有赋值就为nil
- print(max)
泛型for语句:
for i,v in ipairs(a) do print(v) end --遍历数组值
for k in pairs(t) do print(k) end --遍历表table的key值Value值
- days={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}
- revdays = {["Sunday"]=1,["Monday"]=2,["Tuesday"]=3,["Wednesday"]=4,["Thursday"]=5,["Friday"]=6,["Saturday"]=7}
- for i,v in ipairs(days) do --days是数组
- print(i .. ":" .. v) --打印数组下标和值
- end
- print("**********")
- for k,v in pairs(revdays) do --revdays是表
- print(k .. ":" .. v) --打印表的Key和Value
- end
break和return语句:break 语句用来退出当前循环(for,repeat,while)
return 用来从函数返回结果
- local i=1
- while a[i] do
- if a[i]==v then
- break --break用法
- end
- i=i+1
- end
- -------------------------------------------
- function foo()
- return --return用法
- do return end
- end