如何使用io.read读取数字

我是Lua的初学者,不知道怎样正确使用 io.read 等等。 我正在做一些非常简单的东西,并且想要将 age = 18 语句替换为可以从用户那里获取输入的内容,询问他们的年龄。

不要使用这个:

age = 18

if age >= 18 and age <=80 then
    print("你可以进去!")
else
    print("你不能进去,很抱歉!")
end

我想要这个:

print("你多大了?")
io.read(只接受数字并与下面的年龄要求进行比较)

if age >= 18 and age <=80 then
    print("你可以进去!")
else
    print("你不能进去,很抱歉!")
end

提前感谢。

点赞
用户7370273
用户7370273

你可以尝试使用 tonumber() 将变量转换为数字,然后检查该变量的布尔值。

print("你的年龄是多少?")
local age = tonumber(io.read())

if age and age >= 18 and age <= 80 then
    print("欢迎进入!")
else
    print("对不起,您无权进入!")
end
2017-01-27 20:53:07
用户415823
用户415823

Lua 解释器为您打开了 stdin、stdout 和 stderr。您可以使用 io.read 读取一个数字,并且根据手册的描述,您可以使用格式 n 来指示您想要读取整数或浮点数。

local age = io.stdin:read 'n'
if age then
  -- age 是一个数字
else
  -- age 是 nil
end
2017-01-27 21:29:51