当前位置:网站首页>lua循环
lua循环
2022-08-10 05:36:00 【yeah_you_are】
循环
既然同为编程语言,那么控制逻辑里的循环就不能缺少,它可以帮助我们实现有规律的重复操作,而循环一般由循环体和停止条件组成。而lua的循环可以由 while
for
repeat ... util
和 goto
实现。
while实现循环
while实现循环在很多编程语言中都有见到,应该是我们最熟悉的方式。
while (condition) do
something
end
当其中condition为true时,执行循环体something,这个常见理解简单。
for实现循环
for循环也是常见的,但是因lua的不同有些还需要注意。
- 数值循环遍历
for i = exp1,exp2,exp3 do
something
end
这里的语句意思是i在区间[exp1,exp2]之间按照步长exp3推进,一般步长不写默认为1。
for i = 3,1,-1 do
print(i)
end
-- 打印结果
3
2
1
- table循环遍历
local a = {
a = "1",b = "2",c = "3"}
for k,v in pairs(a) do
print(k .. " : " .. v)
end
-- 打印结果
a : 1
b : 2
c : 3
这里可以借用函数pairs解析其中的键值对。
- list数组循环遍历
local b = {
1,2,3,4,5}
for k,v in ipairs(b) do
print(k .. " : " .. v)
end
--打印结果
1 : 1
2 : 2
3 : 3
4 : 4
5 : 5
这里借用了ipairs函数解析数组,注意lua中的数组下标是从1开始的。
repeat … util 实现循环
这个类似于 do ... while
,只不过这里只有循环条件为true才会停止执行循环,而 do ... while
循环是当条件为false才会停止循环。
local i = 1
repeat
print(i)
i = i + 1
until i > 3
-- 打印结果
1
2
3
goto实现循环
goto语句其实也很熟悉了,c语言中就有,但是java中就没有。但是由于这种语句不利于代码的阅读,一般都不太推荐使用。
local i = 1
-- 定义label s1
:: s1 :: print(i)
i = i + 1
if i <= 3 then
-- 跳转到定义的label s1
goto s1
end
-- 打印结果
1
2
3
在lua中没有continue关键字,所以也并不提供这个功能,但是使用goto就可以实现这个功能。
for i = 1,3 do
if i == 2 then
goto s2
end
print(i)
:: s2 ::
end
-- 打印结果
1
3
当然想要跳出循环可以使用break,但是break对于goto实现的循环不能起到跳出循环的作用,会引起报错。
for i = 1,3 do
if i == 2 then
break
end
print(i)
end
-- 打印结果
1
这便是lua中所有实现循环的方式了,希望对你有用。
边栏推荐
猜你喜欢
随机推荐
在Unity中判断游戏物体是否在游戏屏幕范围之内
pytorch-10. Convolutional Neural Networks
开源游戏服务器框架NoahGameFrame(NF)简介(一)
Flutter的生命周期
STM32F407ZG 串口通信+固定帧头帧尾传输数据帧
内核性能分析总结
STM32F407ZG TIM通用定时器
动态规划、背包问题 6/25 110-115
【图像识别】训练一个最最简单的AI使其识别Vtuber
AR Foundation Editor Remote插件使用方法
氨氮吸附工艺
STM32F407ZG GPIO输入相关实验
Unity中Xml简介以及通过脚本读取Xml文本中的内容
常用模块封装-pymysql、pymongo(可优化)
解析树字符串并输出中序遍历
51单片机室内环境甲醛PM2.5光照温度湿度检测及窗帘加湿消毒控制系统
markdown使用技巧
过大数组导致爆栈的解决方法记录(堆栈)
酸回收树脂工艺技术详解
.Net Core imports tens of millions of data to Mysql