Lua for循环

Lua for循环

 

累加模式

for var = exp1, exp2, exp3 do
       ……
end



exp1初始值

exp2最大值

exp3步长

 

例如

for i=1,5,2 do
       print(i*10)
end

结果:

 

 

迭代器泛型模式for

for <var-list> in <exp-list> do
       ……
end

例如

a={1, 2, x=44, y=55}
for i,v in pairs(a) do
       print(i,v)
end

结果

 

详解:

for var1, var2,… in <explist> do
       ……
end

等价于

do
       local _f1, _2, _n = <explist>
       while true do
              local var1, var2, … = _f1(_2, _n)
              _n= var1
              if _n == nil then
                     break
              end
              ……
       end
end


自定义迭代器:

 

1

function CreateItor(i)
       local n = 0;
       return function()
              if n<i then
                     n=n+1
                     return n, "abc"
              else
                     return nil
              end
       end
end
 
for i,v in CreateItor(5) do
       print(i,v)
end

结果

 

2

function Itor(i,n)
       if n<i then
              n=n+1
              return n, "abc"
       else
              return nil
       end
end
 
for i,v in Itor,5,0 do
       print(i,v)
end

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值