您的位置:首页 > 编程语言 > Lua

Lua学习笔记2--变量域和流程控制

2016-01-28 22:18 597 查看
为了方便学习,我会将lua的变量域和流程控制与C语言进行一个对比,仅仅列出差异比较大的地方

1.lua运算符

取模运算符(%)

一般来说,5%2=1,但是在lua中,有其他用途。先看看这个例子:

-- lua运算符
local x=311.148
print(x-x%1) --取整数,x%1返回x的小数部分
print(x-x%0.01) --进行小数截取,x%0.01返回小数点后第3位的部分

关系运算服(~=)

在C语言中,不等于,使用的是!=,关系运算符的运算结果都是true或者是false

a=10
b="10"
if a~=b then
print("a~=b!")
end
结果输出a~=b!

逻辑操作服(and、or、not)

lua的and、or逻辑操作服,相比起C语言的区别还是比较大的,在C语言中,and(&&)返回的结果是1或者0,我们来看看lua的结果

print(1 and 2)  --返回2
print(false and 2)  --返回false
print(1 and false)  --返回1
对于and来说,如果第一个操作为假,就返回第一个,否则则返回第二个,对于or来说,如果第一个操作为真,就返回第一个操作数,否则返回第二个数。

print(1 or 2)  --返回1
print(false or 2)  --返回2
print(1 or false)  --返回1

2.lua变量域

lua有全局变量和局部变量之分,局部变量前使用local进行声明,声明后只在当前程序块中起作用。
变量隐藏:当出现全局变量和局部变量重名时,全局变量会被隐藏!在程序设计中,应该缩短变量的生存期,提高代码的可读性。

--变量的范围
var="global_var!"  --全局变量
do --do-end程序块
local var="local_var!"
print(var)  --输出local_var!
end
print(var)  --输出global_var!

3.lua控制结构

条件判断

do
<span style="white-space:pre">	</span>local a=20
if a==10 then
print(10)
elseif a==20 then
print(20)
end
end

while循环

do
local a=10
while a<12 do
print(a)
a=a+1
end
end


repeat循环

do
local a=1
repeat
a=a-1
until a<0
print(a)
end

数字型for

do
local a=1
for a=100,120,3 do --var=exp1,exp2,exp3 var从exp1增长到exp2,exp3为步长
print(a)
end
end

泛型for

do
local a={1,2,3,4;member="qiqi",leader="zhuzhu"}
--泛型迭代可以迭代table类型
for key,value in pairs(a) do
print("key:"..key..";value:"..value)
end
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: