Lua的学习-3

mac2025-07-12  2

一、Lua的基本语法

1、赋值语句

Lua是一种弱类型语言。 赋值给变量string类型,便是string 类型。赋值number类型,便是number类型。

(1)多值赋值

a,b= 10,15,30,4 print("a="..a..",b="..b) --结果:a=10,b=15 a,b,c = 10,15 print(c) --结果:nil print("a="..a..",b="..b..",c="..c) --此时c应为nil,但这种输出方式会报错

变量个数<值的个数,后面多余的值会自动忽略; 变量个数>值的个数,按变量个数补足nil;

(2)交换赋值

a,b = b,a print("a="..a..",b=",b) -结果a=15,b=10

(3)函数的多返回值赋值

c,d = fun(3,4) print("a="..a..",b=",b) --结果a=6,b=8 function fun(a,b) return a+3,b*2 end

二、局域变量和代码块

a,b = fun(3,4) print("a="..a..",b=",b) --结果a=6,b=8 --在Lua中“local”关键字修饰的变量均为局部变量,只要不带local关键字的均为全局变量,全局变量也可以被别的文件操作。 local a = 3 print(a) --结果:3 funa() function fun(a,b) return a+3,b*2 end function funa () print(a) --结果:a是6 end

在上面代码块中,我们看到会比较混乱,一般我们会把局部代码块放到 do end 之间,封装成代码块模式

a,b = 3,4 print("a="..a..",b=",b) --结果a=6,b=8 do local a = 10 print("内部a="..a) --结果a=10 end print("外部a="..a) --结果:3

三、分支语句

在Lua中分支语句只有 if else;并没有switch case.

a=3 b=5 if a>b then print(a) elseif a<b then print("a<b") else print("a=b") end

四、循环语句

while…end 循环 repeat…until 循环 --相当于 do…while for … end循环

--while ..do 方法是先判断在执行 a,b = 3,9 while a<b do print(a) a = a+ 1 end --repeat ..do 方法是先执行再判断,直到满足条件 --结果:3 4 5 6 7 8 repeat print(a) a = a+1 until a>b --结果:1 3 5 7 8 9 --此处的“2”代表间隔(step)为2,如果不写,此处默认为1. for i=1,10,2 do print(i) end --此种方法的结果同上。 for i=0,funb(),2 do print(i) end function funb() print("调用") return 9 end --此时,在i=3时就会跳出循环 --结果为 0 1 2 3 for i=0,funb() do print(i) if i==3 then break end end

注意在Lua语言中没有continua 替代方法如下

--结果:1 2 4 5 6 7 8 for i =1 ,funb() do repeat if i == 3 then break end print(i) until true end
最新回复(0)