如何使用io.read读取数字

时间:2017-01-27 19:47:32

标签: input lua

我是Lua初学者,不知道如何正确使用io.read等。  我正在做一些非常简单的事情,我想将age = 18语句替换为可以从用户那里得到输入的东西,让他们说出他们的年龄。

而不是:

age = 18

if age >= 18 and age <=80 then
    print("You may enter!")
else
    print("You are not allowed in, sorry!")
end

我想要这个:

print("What's your age?")
io.read(ONLY ACCEPTS NUMBERS AND IS USED TO COMPARE WITH AGE REQUIREMENTS BELOW)

if age >= 18 and age <=80 then
    print("You may enter!")
else
    print("You are not allowed in, sorry!")
end

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

print("What's your age?")
local age = tonumber(io.read())

if age and age >= 18 and age <= 80 then
    print("You may enter!")
else
    print("You are not allowed in, sorry!")
end

答案 1 :(得分:0)

Lua口译员为您打开stdin, stdout, and stderr。您可以使用io.read读取数字,而manual描述的数字可以使用格式n表示您想要读取整数或浮点数。

local age = io.stdin:read 'n'
if age then
  -- age is a number
else
  -- age is nil
end