2

私は非常に基本的な電卓プログラムの作業を始めたばかりで、計算が完了した後、プログラムを開いたままにしておくことができません。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()

なぜこれが起こるのか誰にも分かりますか?ありがとうございました!

4

1 に答える 1

3

より簡単な例:

io.read('*number')
io.read()

問題はread('*number')、数字の後に改行文字が消費されないことです。それはまだ入力ストリーム上にあるので、呼び出すとio.read(デフォルトでは行を読み取る)、すぐに戻ります。

これを修正するには、もう一度電話io.readしてください。

于 2013-01-15T18:20:16.550 に答える