Lua学习五----------Lua循环
© 版权声明:本文为博主原创文章,转载请注明出处
1.循环类型
1.1 while循环
- 语法:while(condition) do ...<执行语句> end
- 解析:判断condition是否为true,为true执行语句,false结束循环
1.2 for循环
1.2.1 数值for循环
- 语法:for var = exp1, exp2, exp3 do ...<执行语句> end
- 解析:var从exp到exp2,步长为exp3(可选,默认为1);exp1,exp2,exp3都是数值
1.2.2 泛型for循环
- 语法:
1)for k, v in pairs(tab) ...<执行语句> end
2)for k, v in ipairs(tab) ...<执行语句> end
- 解析:
1)通过迭代器函数pairs来遍历table的所有值,tab是一个table,k是索引,v是索引对应的值
2)ipairs与pairs作用相似,不过pairs遍历所有key,ipairs只遍历key值为整数的
1.3 repeat...until循环
- 语法:repeat ...<执行语句> until(condition)
- 解析:先执行语句,然后判断condition是否为true,为true继续执行语句,false结束循环(repeat...until循环至少执行一次)
1.4 嵌套循环
- 在循环内再嵌套一个或多个循环
2.循环控制语句
2.1 break语句
- 退出当前循环语句,并开始执行紧接着的语句
3.无限循环
- 在循环体中,如果条件永远为true,循环语句就会永远执行下去
4.loops.lua
print("while:")
a = 0
while(a < 3) do
local x = a * 3 - 1
print("x = " .. x)
a = a + 1
end
print("\nfor:")
for i = 1, 5 do -- 数值for循环,默认步长为1
print("第" .. i .. "次循环")
i = i + 1
end
print()
for i = 5, 1, -2 do -- 数值for循环,步长为-2
print("第" .. i .. "次循环")
i = i + 1
end
tab = {
key1 = "val1",
key2 = "val2",
"val3"
}
print("\npairs:")
for k, v in pairs(tab) do -- 泛型for循环,pairs可迭代table中的所有key
print("k = " .. k .. " , v = " .. v)
end
print("\nipairs:")
for k, v in ipairs(tab) do -- 泛型for循环,ipairs只可迭代table中key值为整数的
print("k = " .. k .. " , v = " .. v)
end
print("\nrepeat:")
x = 0
repeat -- repeat...until循环,先执行后判断条件,所以至少执行一次
print("x = " .. x)
x = x - 1
until(x < 0)
print("\nNested loop:") -- 嵌套循环,在一个循环里嵌套一个或多个循环语句
y = 2
while(y > 0) do
for j = 1, 3 do
print(y .. " * " .. j .. " = " .. j * y)
end
y = y - 1
end
print("\nbreak:")
for i = 0, 10 do -- break,退出当前循环或语句
print("i = " .. i)
if(i == 2) then
print("break...")
break
end
end
5.效果预览

参考:http://www.runoob.com/lua/lua-loops.html
Lua学习五----------Lua循环的更多相关文章
- Lua学习---编译生成lua和luac
众所周知,Lua是一种强大的脚本语言,并且这种语言是用C语言实现的.为什么要学习这门语言?因为它可以增强我看C语言代码的功底. 我下的Lua版本是Lua5.3,关于Lua5.3的简介如下: http: ...
- Lua学习2 Lua小框架的搭建
看了上一篇Lua环境搭建具体http://blog.csdn.net/liuwumiyuhuiping/article/details/9196435 为了方便学习. 具体新开始搭建一下学习的小框架. ...
- Lua学习十一----------Lua迭代器
© 版权声明:本文为博主原创文章,转载请注明出处 Lua迭代器 - 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址 - Lu ...
- lua学习:lua中“类”的实现
在之前的面试遇到考用lua实现类的题目.现在就补补这块知识点. 我们都知道Lua中的table是一个对象.拥有状态,拥有self,拥有独立于创建者和创建地的生命周期. 一个类就是一个创建对象的模具.L ...
- Lua学习十----------Lua数组
© 版权声明:本文为博主原创文章,转载请注明出处 1.LUA数组 - 一维数组 - 多维数组 2.array.lua -- 一维数组 print("一维数组") array1 = ...
- Lua学习九----------Lua字符串
© 版权声明:本文为博主原创文章,转载请注明出处 1.Lua字符串 - ''单引号间的一串字符 - ""双引号之间的一串字符 - [[]]之间的一串字符 2.Lua转义字符 3.字 ...
- Lua学习八----------Lua运算符
© 版权声明:本文为博主原创文章,转载请注明出处 1.Lua运算符: - 算术运算符:+(加法).-(减法).*(乘法)./(除法-取整).%(除法-取余).^(乘幂).-(负号) - 关系运算符:= ...
- Lua学习七----------Lua函数
© 版权声明:本文为博主原创文章,转载请注明出处 1.Lua函数 - 完成指定的任务,这种情况下函数作为调用语句使用 - 计算并返回值,这种情况下函数作为赋值语句的表达式使用 - Lua函数可以返回多 ...
- Lua学习六----------Lua流程控制
© 版权声明:本文为博主原创文章,转载请注明出处 Lua流程控制 - 通过程序设定一个或多个条件语句 - 在条件为true时执行指定程序代码,在条件为false时指定其他指定程序代码 - 控制结构语句 ...
随机推荐
- shell的简单介绍
一 什么叫shell,shell 是什么 如果考虑到操作系统其实是一组软件,我们可以发现应用程序其实是在最外层,就如同鸡蛋的外壳一样,因此这个也就被称为shell. 其实shell的功能只是提供用户操 ...
- 【nginx】nginx的介绍
Nginx 反向代理初印象 Nginx (“engine x”) 是一个高性能的HTTP和反向代理 服务器,也是一个IMAP/POP3/SMTP服务器.其特点是占有内存少,并发能力强,事实上nginx ...
- android基本控件学习-----TextView
一.TextView的讲解 <实例一> <?xml version="1.0" encoding="utf-8"?> <Linea ...
- c语言中的main函数讨论
**从刚开始写C程序,相比大家便开始写main()了.虽然无数的教科书和老师告诉我们main是程序的入口.那么main函数是怎么被调用的,怎么传入参数,返回的内容到哪里了,返回的内容是什么?接下来我们 ...
- VIM的修炼等级
用vim 快两年了 看过教程也不少,总的来说还是得自己多练习,当自己觉得有需要的时候,再添加功能.这里分享个看过的最好的教程,出自贴吧的某个朋友,写的很好 零 学会盲打 壹 配置文件先从最简开始,在 ...
- [wxPython学习]wx.CallAfter和wx.FutureCall
[wxPython学习]wx.CallAfter和wx.FutureCall 今天才学到的两个wxPython中的函数:wx.CallAfter和wx.FutureCall.这是两个无关的函数,但又多 ...
- PHP安装oracle的php_oci和oci8扩展
环境:centos6.9 php5.3.3 oracle客户端:下载链接:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277 ...
- App Store 审核指南(最新)
简介 App 正在改变世界,丰富人们的生活,并为像您一样的开发者提供前所未有的创新机会.因此,App Store 已成长为一个激动人心且充满活力的生态系统,正为数百万的开发者和超过十亿的用户提供服务. ...
- (2)JavaScript基础2
一.操作符 1.一元操作符 自加自减操作符 前置型 执行前置递增和递减操作时,变量的值都是在语句被求值以前改变的 var num1 = 2; var num2 = 20; var num3 = --n ...
- [开源] FreeSql AOP 功能模块
前言 FreeSql 是一个功能强大的 .NETStandard 库,用于对象关系映射程序(O/RM),支持 .NETCore 2.1+ 或 .NETFramework 4.6.1+(QQ群:4336 ...