Lua循环

循环

Lua循环_第1张图片
流程图

lua提供一下几种循环处理方式

while循环   条件为true,重复执行某些语句,执行前先检查条件是否为ture
for循环   重复执行指定语句,重复次数可在for语句控制
repeat...until   重复执行循环,直到指定条件为真时为止
循环嵌套   可以在循环中嵌套循环

循环控制语句:

break 退出当前循环或语句,并开始脚本执行接着的语句

无限循环

while(true)
do
    print("循环一直执行")
end

while循环

语法

while(condition)
do
  statemets
end

condition 循环条件
statemets 循环语句


Lua循环_第2张图片
while流程图

for循环

for循环有两大类:
      数值for循环
      泛型for循环

数值for循环

for var = exp1,exp2,exp3 do
  statemets
end

var从exp1变化到exp2,每次变化以exp3为步长递增var,并执行一次statemets(循环体) ,exp3是可选的,如果不指定,默认是1.

--例:
function f(x)
    print("function: ".. x);
    return x * 2
end
for i = 1 ,f(5) do
    print(i)
end
--结果 :
1
2
3
4
5
6
7
8
9
10

泛型for循环

泛型for循环通过一个迭代器函数来遍历所有制,类似C# 中foreach语句
泛型for循环语法格式

for i,v in ipairs(a) do
    print(v)
end

i是数组索引值,v是对应索引的数组元素组,ipairs是Lua提供的一个迭代器函数,用来迭代数组.

--循环days
days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}
for i,v in ipairs(days) do
   print(i.." : "..v)
end
--结果:
1 : Sunday
2 : Monday
3 : Tuesday
4 : Wednesday
5 : Thursday
6 : Friday
7 : Saturday

repeat ...until

repeat ... until 不同与for和while
循环的条件语句在当前循结束后判断


Lua循环_第3张图片
流程图

repeat ... until 循环格式:

repeat
    statements
until(condition)

例如

a = 10
repeat
    print("a的值为",a)
    a = a + 1
until( a > 15)
--结果:
a的值为    10
a的值为    11
a的值为    12
a的值为    13
a的值为    14
a的值为    15

嵌套循环

格式:

for init,max/min value, increment do
    for init,max/min value, increment do
        statements
    end
  statements
end
while(condition)
do 
     wile(condition)
     do
           statements
      end
      statements
end
repeat
    statements
    repeat
        statements
     until(condition)
until(condition)

除了上面的还有使用不同的循环类型进行嵌套循环

你可能感兴趣的:(Lua循环)