多重赋值
lua 可以同时为多个变量赋值,如果参数不够则后面的变量赋 nil,如果参数过剩则舍弃多出的。
--多重赋值
a, b = 12 ^ 0.5, math.sqrt(12)
print(a == b) --true
x=10
y=20
x, y = y, x
print(x, y) -- 20 10
--参数不够补空
a, b, c = 1, 2
print(a, b, c) --1,2,nil
--参数多余舍弃
a, b, c = 1, 2, 3, 4
print(a, b, c)
a, b, c = 0
print(a, b, c) --0,nil,nil
局部变量
lua 可以在语句块里使用 local 声明局部变量
--使用local声明局部变量
do
local l = 10
print(l)
end
print(l) --nil
条件语句
--条件语句
--lua只有if条件语句,没有swtich
num = tonumber(io.read())
if num<0 then
print("negative")
elseif num<60 then
print("bad")
else
print("good")
end
循环语句
lua 的循环语句有 while…do..end、repeat..until、和 for 循环,for 循环亦可应用于迭代器。
--循环语句
--while
while true do
local num1=io.read()
if num1=='q' then
break
end
num1=tonumber(num1)
local num2=tonumber(io.read())
print(num1,"+",num2,"=",num1+num2)
end
--repeat
i = 6
repeat
local str=""
for i=1,i do
str=str.."*"
end
print(str)
i = i - 1
until i<=0;
--for
for i=10,1,-3 do
print(i)
end
--泛型
arr = { 1, 20, 300 }
for i,v in ipairs(arr) do
print(i, v)
end
--return和break只能放在语句块的最后一句
while 0 do
--break --error
do
break
end
local x=10
print(x)
end