2017-01-27 2 views
2

ich einen Lua Anfänger bin zu lesen verwenden io.read und nicht wissen, wie man richtig io.read und so verwenden. Ich arbeite an etwas sehr einfach und ich wollte die age = 18 Anweisung zu etwas ersetzen, das die Eingabe vom Benutzer bekommen kann, sie bitten, ihr Alter zu sagen.Wie eine Reihe

Statt dessen:

age = 18 

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

Ich möchte dies:

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 

Vielen Dank im Voraus.

Antwort

1

können Sie versuchen, eine Variable auf eine Zahl zu konvertieren tonumber() und überprüfen dann den Booleschen Wert dieser Variablen.

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

Der Dolmetscher Lua öffnet stdin, stdout, and stderr für Sie. Sie können eine Nummer mit io.read lesen und wie das manual beschreibt, können Sie das Format n verwenden, um anzugeben, dass Sie eine Ganzzahl oder Gleitkommazahl lesen möchten.

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