Lua for 的使用

2 篇文章 0 订阅

        Lua 中的 for 循环有两种形式:数值型遍历和泛型遍历。

1,数值型遍历

语法为:

for name=exp1, exp2 [,exp]

do

-- do something

end

[,exp] 这个不是必须的,是可选项。它表示步长,即从name=exp1 如何变化到 exp2,所以有可能是递增,也有可能是递减,主要由[,exp] 决定。

1)递增型

#!/usr/local/bin/lua

for v = 1, 5, 1
do
    print("v="..v);
end

以上的for循环,变量v从1增加到5,每次增加 1 个步长,即循环 5 次,结果如下:

如果步长是 2 的话,其结果如下:

 

如果没有步长,则默认就是 1。

2)递减型 

#!/usr/local/bin/lua

for v = 5, 1, -1
do
    print("v="..v);
end

递减型只要把步长改成负数即可。

2,泛型遍历

        这种方法一般用于遍历 table。

1)table 有key的时候

#!/usr/local/bin/lua

local config = 
{
	DefaultHostIp = "192.168.1.108",
	DefaultNetMask = "255.255.255.0",
	DefaultGateway = "192.168.1.1",
};


for key, value in pairs(config)
do
    print("table_test["..key.."] = "..value);
end

这种table里的表项是有 key=value 对的,如果是没有key,而只有 value 项呢,该如果 for 循环遍历呢?

2)table 没有key的时候

#!/usr/local/bin/lua

local config = 
{
	"192.168.1.108",
	"255.255.255.0",
	"192.168.1.1",
};


for key, value in pairs(config)
do
    print("table_test["..key.."] = "..value);
end

 

可以看到,此时默认的 key 就是 1,2,3, .....

3)利用 table 的大小

这个时候还可以这样打印出 table 的值:

#!/usr/local/bin/lua

local config = 
{
	"192.168.1.108",
	"255.255.255.0",
	"192.168.1.1",
};


for key, value in pairs(config)
do
    print("table_test["..key.."] = "..value);
end

for index = 1, #(config)
do
    print(index.." = "..config[index]);
end

 

其中 #(config) 是取 table 的大小,config[index] 当然就是 table 里的 value 了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值