Lua 脚本的快速入门 ——下

8. 分支判断:

-- 写法一
if (a > b) then ... end
    
-- 写法二    
if (a > b) then ...
else ...
end
    
-- 写法三
if (a > b) then ...
elseif (a == b) then ...
else ... 
end
    
-- 注意: 在Lua里面只有false和nil代表假,其他都是真,0也是真
if 0 then print("0 is true") end --输出: 0 is true

9. 循环:

-- 三种循环for,while,repeat

-- 一. for循环
for i = 1,10 do --i从1开始,到10结束,是闭区间,即[1,10],后面加一个do
    print(i)
end

for i = 1,10,2 do --i从1开始,到10结束,步长为2
    print(i)
end

for i = 10,i,-1 --i从10开始,到1结束,步长为-1
    print(i)
end
--注意: 在for循环里面对i进行修改是没有作用的,解释器会默认for循环里面的i是local变量

-- 可以使用break来终止循环,Lua里面没有continue
for i = 1,10 do
	print(i)
	if i == 5 then break end
	-- 实现类似i == 5时continue
	-- if i == 5 then -- 这里什么都不做
	-- else print(i)
	-- end 
end

-- 二. while循环
-- 当 while 的判断满足要求时就执行,否则跳出循环
-- while循环里面也是可以使用break来退出循环
local n = 10
while n > 1 do
	-- if n == 5 then break end 
	print(n)
	n = n - 1  -- 注意Lua里面没有前置后置--和++
end

-- 三. repeat循环,类似于do - while式循环,先执行代码块,再检查条件,为false时退出循环
repeat
  -- 循环体代码
until ...

-- 基本用法
local i = 1
repeat 
	print(i)
	i = i + 1
until i > 5
-- 输出: 1 2 3 4 5

-- 模拟continue
for i = 1, 5 do
 	repeat 
        if i == 3 then break end
        print(i)
    until true
end
-- 输出:1 2 4 5

local input
repeat
    print("请输入一个大于 10 的数字:")
    input = tonumber(io.read())  -- 读取用户输入
until input and input > 10      -- 直到输入有效才退出
print("你输入的是:", input)
-- 输出:
--[[
请输入一个大于 10 的数字:
5
请输入一个大于 10 的数字:
1
请输入一个大于 10 的数字:
10
请输入一个大于 10 的数字:
11
你输入的是:     11
]]

10. 字符串补充:

-- Lua里面的字符串类似于C里面的字符数组
s = string.char(0x30,0x31,0x32,0x33)
print(s) -- 输出: 0123

n = string.byte(s,2)
print(n) -- 输出: 49(1的ASCII码十进制值)

--Lua里面ASCII为0x00的值不是结束标志,就是0
s = string.char(0x00,0x30)
n = string.byte(s,1)
print(n) -- 输出: 0

最后 Lua 5.3 参考手册:Lua 5.3 参考手册

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值