2017-01-27 2 views
2

Я начинаю Lua и не знаю, как правильно использовать io.read и тому подобное. Я работаю над чем-то очень простым, и я хотел заменить оператор age = 18 на что-то, что может получить вход от пользователя, попросив их сказать их возраст.Как использовать io.read для чтения номера

Вместо этого:

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 

Спасибо заранее.

ответ

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 
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 
Смежные вопросы