© 版权声明:本文为博主原创文章,转载请注明出处

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循环的更多相关文章

  1. Lua学习---编译生成lua和luac

    众所周知,Lua是一种强大的脚本语言,并且这种语言是用C语言实现的.为什么要学习这门语言?因为它可以增强我看C语言代码的功底. 我下的Lua版本是Lua5.3,关于Lua5.3的简介如下: http: ...

  2. Lua学习2 Lua小框架的搭建

    看了上一篇Lua环境搭建具体http://blog.csdn.net/liuwumiyuhuiping/article/details/9196435 为了方便学习. 具体新开始搭建一下学习的小框架. ...

  3. Lua学习十一----------Lua迭代器

    © 版权声明:本文为博主原创文章,转载请注明出处 Lua迭代器 - 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址 - Lu ...

  4. lua学习:lua中“类”的实现

    在之前的面试遇到考用lua实现类的题目.现在就补补这块知识点. 我们都知道Lua中的table是一个对象.拥有状态,拥有self,拥有独立于创建者和创建地的生命周期. 一个类就是一个创建对象的模具.L ...

  5. Lua学习十----------Lua数组

    © 版权声明:本文为博主原创文章,转载请注明出处 1.LUA数组 - 一维数组 - 多维数组 2.array.lua -- 一维数组 print("一维数组") array1 = ...

  6. Lua学习九----------Lua字符串

    © 版权声明:本文为博主原创文章,转载请注明出处 1.Lua字符串 - ''单引号间的一串字符 - ""双引号之间的一串字符 - [[]]之间的一串字符 2.Lua转义字符 3.字 ...

  7. Lua学习八----------Lua运算符

    © 版权声明:本文为博主原创文章,转载请注明出处 1.Lua运算符: - 算术运算符:+(加法).-(减法).*(乘法)./(除法-取整).%(除法-取余).^(乘幂).-(负号) - 关系运算符:= ...

  8. Lua学习七----------Lua函数

    © 版权声明:本文为博主原创文章,转载请注明出处 1.Lua函数 - 完成指定的任务,这种情况下函数作为调用语句使用 - 计算并返回值,这种情况下函数作为赋值语句的表达式使用 - Lua函数可以返回多 ...

  9. Lua学习六----------Lua流程控制

    © 版权声明:本文为博主原创文章,转载请注明出处 Lua流程控制 - 通过程序设定一个或多个条件语句 - 在条件为true时执行指定程序代码,在条件为false时指定其他指定程序代码 - 控制结构语句 ...

随机推荐

  1. 糗事百科python爬虫

    # -*- coding: utf-8 -*- #coding=utf-8 import urllib import urllib2 import re import thread import ti ...

  2. 【03】Vue 之列表渲染及条件渲染

    3.1. 条件渲染 有时候我们要根据数据的情况,决定标签是否进行显示或者有其他动作.最常见的就是,表格渲染的时候,如果表格没有数据,就显示无数据.如果有数据就显示表格数据. Vue帮我们提供了一个v- ...

  3. 所驼门王的宝藏(bzoj 1924)

    Description Input 第一行给出三个正整数 N, R, C. 以下 N 行,每行给出一扇传送门的信息,包含三个正整数xi, yi, Ti,表示该传送门设在位于第 xi行第yi列的藏宝宫室 ...

  4. SQL中的CASE WHEN使用

    原文发布时间为:2010-06-04 -- 来源于本人的百度文章 [由搬家工具导入] SQL的条件语句,条件判断语句,SQL的 if else语句。2009-07-20SQL_中的CASE WHEN使 ...

  5. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---31

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  6. C#数组排序以及比较对象的大小

    先来看个小例子吧 ,,,,,}; Array.Sort(intArray); Array.ForEach<int>(intArray,(i)=>Console.WriteLine(i ...

  7. (4)python tkinter-布局

    包装布局pack() 目前对它的感觉是,当一个窗体的对象都设置完属性后,最后用它来绑定到窗体上.之后就不能再设置属性了 名称 描述 取值范围 expand 当值为“yes”时,side选项无效.组件显 ...

  8. Educational Codeforces Round 34 B. The Modcrab【模拟/STL】

    B. The Modcrab time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  9. 【转】浅谈多核CPU、多线程、多进程

    浅谈多核CPU.多线程.多进程 1.CPU发展趋势 核心数目依旧会越来越多,依据摩尔定律,由于单个核心性能提升有着严重的瓶颈问题,普通的桌面PC有望在2017年末2018年初达到24核心(或者16核3 ...

  10. 小菜的系统框架界面设计-XiaoCai.WinformUI代码开源

    我的源码分享 曾经,看到别人漂亮的系统界面,合理的布局,可是却没有提供源码,道理很简单,就是有偿提供,实际上对于有些技巧的东西也并没有多么难,只是不懂原理,感觉到困难罢了. 而对于刚毕业的我,求知欲强 ...