【Lua】循环与流程控制

一 循环

一 循环处理方式

01 while 循环
  1. 语法
-- while 循环语法 --
while(condition) --条件
do
    statements   --循环语句体
end
  1. 实例
a=10
while(a < 20)
do
    print("a 的值为:", a)
    a = a+1
end
02 for 循环
a 数值 for 循环
  1. 数值 for 循环语法格式:
-- for 循环语法 --
for var=exp1, exp2, exp3 do
    --<执行体>--
end

--[[
var 从 exp1 变化到 exp2, 每次变化以 exp3 为步长递增 var, 并执行一次"执行体". exp3 默认为 1
--]]
  1. 实例
for i=1,f(x) do
    print(i)
end

for i=10,1,-1 do
    print(i)
end
b 泛型 for 循环
  1. 泛型 for 循环语法格式
-- 打印数组a的所有值
a = {"one", "two", "three"}
for i, v in ipairs(a) do
    print(i, v)
end
        -- pairs 与 ipairs 两个迭代器的区别 --
--[[
1. pairs 遍历表中全部的key, value
2. ipairs 只能遍历所有数组下标的值 (迭代的下标从1开始)
① ipairs 在迭代过程中会跳过所有手动设定key值的变量
例如:
tab = {1, 2, a=nil, "d"}
for i,v in ipairs(tab) do
	print(i, v)
end
输出结果:
1 1
2 2
3 d
② ipairs 在迭代过程中如果遇到 nil 是会直接停止
例如:
tab = {1, 2, a=nil, nil, "d"}
for i,v in ipairs(tab) do
	print(i, v)
end
输出结果:
1 1
2 2
--]]
03 repeat…until 循环
  1. 语法格式:
repeat
    statements
until( condition )
  1. 实例:
a = 10
repeat
    print("a的值为:", a)
    a = a + 1
until( a > 15)
--[[
a的值为: 10
a的值为: 11
a的值为: 12
a的值为: 13
a的值为: 14
a的值为: 15
--]]
04 循环嵌套

Lua 语言中允许循环中嵌入循环

二 循环控制语句

01 break 语句
a 语法
-- 语法格式
goto Label
-- Label 的格式
:: Label ::
b 实例
-- Example 1 --
local a = 1
::label:: print("---goto label---")
a = a+1
if a<3 then
    goto label
end
-- Example 2 --
i = 0
::s1:: do
    print(i)
    i = i+1
end
if i>3 then
    os.exit() -- i > 3 时退出
end
goto s1
-- Example 3 --
for i=1, 3 do
    if i <= 2 then
        print(i, "yes continue")
        goto continue
    end
    print(i, "no continue")
    ::continue::
    print([[i'm end]])
end

三 无限循环

条件永远为 true 循环语句就会永远执行

二 流程控制

一 if 语句

01 语法格式
if(布尔表达式) 
    then
    --[[
    在布尔表达式为 true 时执行的语句
    --]]
    end
02 实例
--[ 定义变量 --]
a = 10;
if(a <  20)
    then 
    print("a < 20")
    end
print("a =", a)

二 if…else 语句

01 语法格式
if(布尔表达式)
then
    --[为真时--]
else
    --[为假时--]
end

三 if…elseif…else 语句

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

维他命C++

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值