循环语句
while 条件 do
语句
end
比如:
a={1,2,-1,0,0,1,1,9,1,1,7,8,0,0}
i=1
while a[i] do
if a[i]~=0 then
print(a[i])
end
i=i+1
End
上述语句返回table中的非0元素。
repeat
语句
until 退出循环条件
比如:下面程序从第一个元素开始输出,如果遇到零就终止输出。
-a={1,2,-1,0,0,1,1,9,1,1,7,8,0,0}
i=1
repeat
print(a[i])
i=i+1
until a[i]==0
dp@dp:~ % lua wh.lua
1
2
-1
dp@dp:~ %
for 变量=初始值,终止值,步长 do
语句块
End
比如下列语句,隔一个元素输出
a={1,2,-1,0,0,1,1,9,1,1,7,8,0,0}
i=1
for i=1,#a,2 do
print(a[i])
end
dp@dp:~ % lua wh.lua
1
-1
0
1
1
7
0
for也可用于迭代
dp@dp:~ % cat wh.lua
a={1,2,-1,0,0,1,1,9,1,1,7,8,0,0}
i=1
for k in pairs(a) do
print(k)
End
dp@dp:~ % lua wh.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
以及:
dp@dp:~ % vim wh.lua
a={1,2,-1,0,0,1,1,9,1,1,7,8,0,0}
i=1
for k,v in ipairs(a) do
print(k.."==>"..v)
end
~
dp@dp:~ % lua wh.lua
1==>1
2==>2
3==>-1
4==>0
5==>0
6==>1
7==>1
8==>9
9==>1
10==>1
break跳出当前块,return从当前块返回,可以带结果返回。
下面程序完成元素的累加,当元素累加超过10时,退出循环
a={1,2,-1,0,0,1,1,9,1,1,7,8,0,0}
i=1
sum=0
for k,v in ipairs(a) do
print(k.."==>"..v)
sum=sum+v
print("sum"..sum)
if sum>10 then
break
end
end
~
dp@dp:~ % lua wh.lua
1==>1
sum1
2==>2
sum3
3==>-1
sum2
4==>0
sum2
5==>0
sum2
6==>1
sum3
7==>1
sum4
8==>9
sum13
return一般用于函数返回结果,在下面将介绍