前言
几乎所有的编程语言,必然会涉及到条件控制,比如像 if for循环等,本篇将介绍在lua中如何使用条件控制语句
Lua控制结构
Lua
语言提供了一组精简且常用的控制结构,包括用于条件执行的证以及用于循环的 while
、
repeat
和
for
。 所有的控制结构语法上都有一个显式的终结符: end
用于终结
if
、
for
及
while
结构,
until
用于终结repeat 结构
语言提供了一组精简且常用的控制结构,包括用于条件执行的证以及用于循环的 while
、
repeat
和
for
。 所有的控制结构语法上都有一个显式的终结符: end
用于终结
if
、
for
及
while
结构,
until
用于终结repeat 结构
if then elseif else
if
语句先测试其条件,并根据条件是否满足执行相应的
then
部分或
else 部分,else
部分是可选的
function testif(a)
if a>0 then
print("a是正数")
end
end
function testif(a)
if a>0 then
print("a是正数")
else
print("a是负数")
end
end
如果要编写嵌套的
if
语句,可以使用
elseif
。 它类似于在
else
后面紧跟 一个if
。根据传入的年龄返回不同的结果,如下需求
if
语句,可以使用
elseif
。 它类似于在
else
后面紧跟 一个if
。根据传入的年龄返回不同的结果,如下需求
age<=18
青少年,age>18 , age <=45
青年age>45 , age<=60
中年人age>60
老年人
function show(age)
if age<=18 then
return "青少年"
elseif age>18 and age<=45 then
return "青年"
elseif age>45 and age<=60 then
return "中年人"
elseif age>60 then
return "老年人"
end
end
while循环
顾名思义,当条件为真时
while
循环会重复执行其循环体。
Lua
语言先测试 while
语句 的条件,若条件为假则循环结束;否则,
Lua
会执行循环体并不断地重复这个过程
while
循环会重复执行其循环体。
Lua
语言先测试 while
语句 的条件,若条件为假则循环结束;否则,
Lua
会执行循环体并不断地重复这个过程
语法:
while
条件
do循环体end
repeat循环
顾名思义,
repeat-until
语句会重复执行其循环体直到条件为真时结束。 由于条件测试在循环体之后执行,所以循环体至少会执行一次。
repeat-until
语句会重复执行其循环体直到条件为真时结束。 由于条件测试在循环体之后执行,所以循环体至少会执行一次。
语法
repeat循环体until
条件
function testRepeat()
local i = 10
repeat print(i)
i=i-1
until i < 1
end
for循环
数值型for循环 语法
for param=exp1,exp2,exp3 do循环体end
param
的值从
exp1
变化到
exp2
之前的每次循环会执行 循环体,并在每次循环结束后将步长(step)exp3
增加到
param
上。
exp3
可选,如果不设置默认为1
的值从
exp1
变化到
exp2
之前的每次循环会执行 循环体,并在每次循环结束后将步长(step)exp3
增加到
param
上。
exp3
可选,如果不设置默认为1
for i = 1,100,10 doprint(i)end
泛型for循环
泛型
for
循环通过一个迭代器函数来遍历所有值,类似于
java
中的 foreach语句。
for
循环通过一个迭代器函数来遍历所有值,类似于
java
中的 foreach语句。
for i,v in ipairs(x) do循环体end
i
是数组索引值,
v
是对应索引的数组元素值,
ipairs
是
Lua
提供的一个迭代器函数,用来迭代数组,x
是要遍历的数组
是数组索引值,
v
是对应索引的数组元素值,
ipairs
是
Lua
提供的一个迭代器函数,用来迭代数组,x
是要遍历的数组
arr = {“TOME”,”JERRY”,”ROWS”,”LUCY”}for i,v in ipairs(arr) do
print(i,v)end
上述实例输出的结果为
1 TOM2 JERRY3 ROWS4 LUCY
但是如果将
arr
的值进行修改为
arr
的值进行修改为
arr = {“TOME”,”JERRY”,”ROWS”,x=”JACK”,”LUCY”}
同样的代码在执行的时候,就只能看到和之前一样的结果,而其中的
x
为JACK就无法遍历出来,缺失了数据,如果解决呢
?
x
为JACK就无法遍历出来,缺失了数据,如果解决呢
?
我们可以将迭代器函数变成
pairs,
如:
pairs,
如:
for i,v in pairs(arr) doprint(i,v)end
上述实例就输出的结果为
1 TOM2 JERRY3 ROWS4 LUCYx JACK
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/143235.html