大粨兔奶糖

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

lua 循环

while 循环

结构

while (condition)
do
	statments
end

lua 语法没有其他语言的 ++, - - 语法, 只能用 i = i + 1, i = i - 1

示例程序

local i = 0

while (i < 10)
do
	print(i)
	i = i + 1
end

for 循环

数值循环

  • 结构

    • for var = expr1, expr2, expr3 do
      	statements
      end
      
    • expr1, expr2, expr3 仅在循环开始前执行一次

    • 从 expr1 变化为 expr2 (包含 expr2), 每次步进 expr3

    • expr3 可省略, 默认为 1

  • 示例程序

    • function f(x)
      	print("function")
      	return x * 2
      end
      
      for i = 0, f(2), 1 do
      	print(i)
      end
      

泛型循环

  • 结构

    • for k, v in ipairs(arr) do
      	statements
      end
      
    • k 为数组的键, v 为数组的值

  • 示例程序

    • days = {"monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"}
      
      for k, v in ipairs(days) do
      	print(k, v)
      end
      
    • ipairs 函数仅对数字索引数组有效, 更通用的是 pairs 函数

repeat … until 循环

结构

repeat
	statements
until (condition)
  • 不管 condition 是 true 还是 false, 循环体 statements 均会先执行一次
  • 判断 condition, 若 condition 为 true, 则跳出循环

示例程序

local a = 0

repeat
	print(a)
	a = a + 1
until (a > 10)
posted on 2017-04-13 12:46  大粨兔奶糖  阅读(131)  评论(0编辑  收藏  举报