Lua for 循环
Lua 语言中的 for 循环语句可以重复执行指定语句,重复次数可在 for 语句中控制
Lua 语言中的 for 循环语句分为两大类:
- 数值 for 循环语句
- 泛型 for 循环语句
Lua 中 for 循环流程图如下:
1. 数值 for 循环
Lua 语言中数值 for 循环语法格式如下:
for var = exp1, exp2, exp3 do statements end
var 从 exp1 变化到 exp2 ,每次变化以 exp3 为步长递增 var,并执行一次 statements
exp3 是可选的,如果不指定,默认为 1
for 循环语句的三个表达式在循环开始前一次性求值,以后不再进行求值。
范例
for i=1,f(x) do print(i) end for i=10,1,-1 do print(i) end
上面的 f(x) 只会在循环开始前执行一次,其结果用在后面的循环中
-- !/usr/bin/lua -- -*- encoding:utf-8 -*- -- filename: main.lua -- author: 简单教程(www.twle.cn) -- Copyright © 2015-2065 www.twle.cn. All rights reserved. function f(x) print("in f(x) ") return x * 2 end for i=1,f(5) do print(i) end
运行以上 Lua 脚本,输出结果如下:
$ lua main.lua in f(x) 1 2 3 4 5 6 7 8 9 10
从范例中可以看到函数 f(x) 只在循环开始前执行一次
2. 泛型 for 循环
泛型 for 循环通过一个迭代器函数来遍历所有值,类似 java 中的 foreach 语句
Lua 语言中泛型 for 循环语法格式如下:
for i,v in ipairs(a) do print(v) end
i 是数组索引值,v 是对应索引的数组元素值,a 是一个数组
ipairs 是 Lua 提供的一个迭代器函数,用来迭代数组。
范例
使用 for 循环输出 array 数组
-- !/usr/bin/lua -- -*- encoding:utf-8 -*- -- filename: main.lua -- author: 简单教程(www.twle.cn) -- Copyright © 2015-2065 www.twle.cn. All rights reserved. array = {"QQ", "Baidu",'Ali','Sina','Meituan'} for i,v in ipairs(array) do print(v) end
运行以上 Lua 脚本,输出结果如下
$ lua main.lua QQ Baidu Ali Sina Meituan