算术操作符
Lua 的算术操作符有:
"+"(加法):
复制代码 代码如下:
print(1 + 2)
print(1 + 2)
"-"(减法):
复制代码 代码如下:
print(2 – 1)
print(2 – 1)
"*"(乘法):
复制代码 代码如下:
print(1 * 2)
print(1 * 2)
"/"(除法):
复制代码 代码如下:
print(1 / 2)
print(1 / 2)
"^"(指数):
复制代码 代码如下:
print(27^(-1/3))
print(27^(-1/3))
"%"(取模):
复制代码 代码如下:
print(5 % 3)
print(5 % 3)
关系操作符
Lua 提供以下关系操作符:
复制代码 代码如下:
< > <= >= == ~=
< > <= >= == ~=
以上操作符返回的运算结果都是 true 或 false。字符串跟数字不可以进行比较
逻辑操作符
逻辑操作符有 and、or、not
复制代码 代码如下:
print(1 and 2)
print(nil and 1)
print(false and 2)
print(1 or 2)
print(false or 5)
print(1 and 2)
print(nil and 1)
print(false and 2)
print(1 or 2)
print(false or 5)
逻辑操作符将 false 和 nil 视为假,其它的为真。
局部变量与作用域
Lua 通过 local 语句来创建局部变量,局部变量的作用域仅限于声明它们的那个块。
复制代码 代码如下:
local a, b = 1, 10
if a < b then
print(a)
local a
print(a)
end
print(a, b)
local a, b = 1, 10
if a < b then
print(a)
local a
print(a)
end
print(a, b)
用局部变量 local 保存全局变量,可以加速在当前作用域中对全局变量的访问。对于加速的效果,对比下面计算 斐波那契数列(Fibonacci)的执行时间便知:
复制代码 代码如下:
function fibonacci(n)
if n < 2 then
return n
end
return fibonacci(n – 2) + fibonacci(n – 1)
end
io.write(fibonacci(50), "\\n")
function fibonacci(n)
if n < 2 then
return n
end
return fibonacci(n – 2) + fibonacci(n – 1)
end
io.write(fibonacci(50), "\\n")
使用局部变量 local
复制代码 代码如下:
local function fibonacci(n)
if n < 2 then
return n
end
return fibonacci(n – 2) + fibonacci(n – 1)
end
io.write(fibonacci(50), "\\n")
local function fibonacci(n)
if n < 2 then
return n
end
return fibonacci(n – 2) + fibonacci(n – 1)
end
io.write(fibonacci(50), "\\n")
if then elseif else end
复制代码 代码如下:
if num == 1 then
print(1)
elseif num == 2 then
print(2)
else
print("other")
end
if num == 1 then
print(1)
elseif num == 2 then
print(2)
else
print("other")
end
Lua 不支持 switch 语句
while
先判断 while 条件,如果条件为真,继执行循环体,否则结束
复制代码 代码如下:
local i = 1
while a[i] do
print(a[i])
i = i + 1
end
local i = 1
while a[i] do
print(a[i])
i = i + 1
end
repeat-until
先执行一次循环体,再判断条件,如果条件为真则退出循环体,否则继续执行循环体。类似其它语言的 do-while 语句,循环体至少会执行一次
复制代码 代码如下:
local a = 1
repeat
a = a + 1
b = a
print(b)
until b < 10
local a = 1
repeat
a = a + 1
b = a
print(b)
until b < 10
for 循环
for 循环语句有两种形式:数字型for(numeric for)、泛型for(generic for)
数字型 for 语法:
复制代码 代码如下:
for start, end, step do
doing something
end
for start, end, step do
doing something
end
start 是开始值,end 是结束值,step是步长(可选,默认为1)
复制代码 代码如下:
for a = 10, 0, -2 do
print(a)
end
for a = 10, 0, -2 do
print(a)
end
泛型 for 循环通过一个迭代器(iterator)函数来遍历所有值:
复制代码 代码如下:
tab = { key1 = "val1", key2 = "val2", "val3" }
for k, v in pairs(tab) do
if k == "key2" then
break
end
print(k .. " – " .. v)
end
tab = { key1 = "val1", key2 = "val2", "val3" }
for k, v in pairs(tab) do
if k == "key2" then
break
end
print(k .. " – " .. v)
end
break 和 return 语句用于跳出当前执行的块。
相关文章
猜你喜欢
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
- 个人服务器网站搭建:如何选择适合自己的建站程序或框架? 2025-06-10
- 64M VPS建站:能否支持高流量网站运行? 2025-06-10
- 64M VPS建站:怎样选择合适的域名和SSL证书? 2025-06-10
- 64M VPS建站:怎样优化以提高网站加载速度? 2025-06-10

