我刚刚开始研究一个非常基本的计算器程序,并且它可以正常工作,我无法在程序完成计算后保持程序打开。 io.read()似乎不起作用。我的代码如下:
promptmethod = "Would you like to use addition, subtraction, multiplication, or division?"
promptnumber1 = "Enter a number:"
promptnumber2 = "Enter another number:"
anotherprompt = "Would you like to make another calculation?"
print(promptmethod)
usermethod = io.read("*line")
print(promptnumber1)
number1 = io.read("*number")
print(promptnumber2)
number2 = io.read("*number")
if usermethod == "addition" then
answer = number1 + number2
stringanswer = "Your calculation is " .. number1 .. " + " .. number2 .. " = " .. answer
elseif usermethod == "subtraction" then
answer = number1 - number2
stringanswer = "Your calculation is " .. number1 .. " - " .. number2 .. " = " .. answer
elseif usermethod == "multiplication" then
answer = number1 * number2
stringanswer = "Your calculation is " .. number1 .. " × " .. number2 .. " = " .. answer
elseif usermethod == "division" then
answer = number1 / number2
stringanswer = "Your calculation is " .. number1 .. " ÷ " .. number2 .. " = " .. answer
else
error("Invalid operation or values.")
end
print(stringanswer)
io.read()
有谁知道为什么会这样?谢谢!
答案 0 :(得分:2)
一个更简单的例子:
io.read('*number')
io.read()
问题是read('*number')
在数字后面没有使用换行符。由于它仍然位于输入流上,因此当您调用io.read
(默认为读取一行)时,它会立即返回。
要解决此问题,请再次拨打io.read
。