我正在尝试制作一个速度计算器,它需要速度输入和覆盖输入所需的距离,并且它应该根据公式“速度=距离/时间”返回覆盖该距离所需的时间,如果距离以公里为单位,如果距离以米为单位,则以米为单位,并且我使用 If 语句将公里转换为米。
io.write("enter speed(m/s):")
local speed = io.read()
io.write("enter distance needed:")
local distance = io.read()
io.write("specify((m) or(km)):")
local units = io.read()
local meters = "m"
local kilometers = "km"
local hundred
if units == meters then
local usedist = distance
elseif units == kilometers then
local usedist = distance * hundred
else
io.write("you did not enter a valid character, please restart the program by pressing 'enter'")
io.read()
end
print(usedist)
local timeneeded = usedist / speed
local timeneededh = timeneeded / 3600
os.execute("cls")
io.write("it will need "..timeneeded.." seconds or "..timeneededh.." hours")
io.write("\n")
io.write("press the 'enter' key to continue")
io.read()
我期待以秒为单位的时间值,但我得到了这个
enter speed(m/s):5
enter distance needed:9
specify((m) or(km)):km
C:\Lua\lua54.exe: object-time-calc.lua:15: attempt to mul a 'string' with a 'nil'
stack traceback:
[C]: in metamethod 'mul'
object-time-calc.lua:15: in main chunk
[C]: in ?
usedist
if
位于您定义它的块内。在它前面声明它以便以后能够访问它,就像这样。