lua学习小结之lua循环

来源:互联网 发布:吴昕的淘宝店叫什么 编辑:程序博客网 时间:2024/05/17 02:16
Lua 循环
循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。
循环语句是由循环体及循环的终止条件两部分组成的。如图:

Lua语言是用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。所以Lua语言的循环和其他语言很相似。
一、for循环:
可以重复执行指定语句,重复次数可在for语句中控制。

Lua中for语句跟其他语言的for类似,但是语法上有一点点区别。for循环语句在Lua语言中可分为两类:数值for循环和泛型for循环
1.数值for循环
语法格式:
        for var=exp1,exp2,exp3 do          <执行体>      end  
var从exp1变化到exp2,每次变化以exp3为步长递增var,并执行一次"执行体"。exp3是可选的,如果不指定,默认为1。
for的三个表达式在循环开始前一次性求值,以后不再进行求值

2.泛型for循环
泛型for循环通过一个迭代器函数来遍历所有值,类似java中的foreach语句。
语法格式:
    --打印数组a的所有值    for i,v in iparrs(a)        do print(v)    end

在lua中pairs与ipairs两个迭代器的用法相近,但有一点是不一样的:
pairs可以遍历表中所有的key,并且除了迭代器本身以及遍历表本身还可以返回nil;但是ipairs则不能返回nil,只能返回数字0,如果遇到nil则退出。它只能遍历到表中出现的第一个不是整数的key。
例如:

    Key = {1,2,3,4,nil,5,6,7,"d"}    for i,v in ipairs(Key) do        print(i,v)    end

输出结果为:

    1        1    2        2    3        3    4        4

遇到 nil 的时候直接跳出循环。



二、while循环:
在条件为true时,让程序重复地执行某些语句。执行语句前会先检查条件是否为true。

语法格式:

    while(condition)     #条件语句,当condition为true时执行循环体语句    do             statements      #循环体语句,可以是一条或多条语句    end

三、repeat...until循环:
重复执行循环,直到指定的语句为true时停止。

repeat...until循环语句不同于for和while循环,for和while循环的条件语句在当前循环执行开始时判断,而repeat...until循环的条件语句在当前循环结束后判断。repeat...until 循环类似于while循环,不同的是do ... while循环是保证至少执行一次。
流程图如下图所示:

语法格式:

repeat        statement(s)until(condition)        #如果条件为false,循环重新开始执行,直到condition为true时停止循环

注意的是,条件表达式出现在循环结束,所以在循环语句(S)执行一次之前的条件进行测试。


四、嵌套循环:
可以在循环内嵌套一个或者多个循环语句(while do...end;for...do...end;repeat...until)
五、循环控制语句:
break语句(退出当前循环或语句,并开始脚本执行紧接着的语句)。
六、无线循环语句:
在循环体中如果语句永远为true,那么循环体就会一直执行下去

以while为例:
    while(true)    do         print("循环将永远执行下去")    end



参考出自: http://www.runoob.com/lua/lua-loops.html

                 
原创粉丝点击