【发布时间】:2019-05-02 07:13:00
【问题描述】:
我正在为 lua 做用户输入代码,如果您在输入信息时出错,您可以通过说出您想要修复的内容来修复它。在你输入这两个字母后(例如说你拼错了 england 并拼成了 englaund,你会输入 HT 来修复它。)它会提示你修复它,在你完成它之后它只是说代码已经完成,即使它不是。
我尝试将变量设置为本地变量,将块设置为 ifs 而不是 elseifs。
--user input--
print('Hello, what is your name? ')
local name = io.read()
print('What is your last name?')
local LastName = io.read()
print('The place you live?')
local Hometown = io.read()
print('Lastly, what is your favourite video game?')
local VideoGame = io.read()
--Printing the information--
print(
'You are ' .. name .. ' ' .. LastName ..
' you live in ' .. Hometown ..
' and your favourite video game is ' .. VideoGame .. '.'
)
print('right?')
-- confirmation --
io.write("press 1 i was correct, and press 2 if i was wrong.")
answer = io.read()
if answer == "1" then
print('Yay, I was correct!')
elseif answer == "2" then
print('aww, I was wrong. Do you want to enter the information again? Say yes or no.')
local answer2 = io.read()
if answer2 == "yes" then
print('What would you like to change? Type either FN, LN, HT or VG to change which one you would like.')
local answer3 = io.read()
if answer3 == FN then
io.write('Ok, please enter the corrected version of your first name.')
answerFN = io.read()
io.write('Here is the corrected version.')
io.write(
'You are ' .. answerFN .. ' ' .. LastName ..
' you live in ' .. Hometown ..
' and your favourite video game is ' .. answerVG .. '.'
)
end
if answer3 == LN then
print('Ok, please enter the corrected version of your last name.')
answerLN = io.read()
print('Here is the corrected version.')
print(
'You are ' .. name .. ' ' .. answerLN ..
' you live in ' .. Hometown ..
' and your favourite video game is ' .. answerVG .. '.'
)
end
if answer3 == HT then
print('Ok, please enter the corrected version of your hometown.')
answerHT = io.read()
print('Here is the corrected version.')
print(
'You are ' .. name .. ' ' .. LastName ..
' you live in ' .. answerHT ..
' and your favourite video game is ' .. answerVG .. '.'
)
end
if answer3 == VG then
print('Ok, please enter the corrected version of your favourite video game.')
answerVG = io.read()
print('Here is the corrected version.')
print(
'You are ' .. name .. ' ' .. LastName ..
' you live in ' .. Hometown ..
' and your favourite video game is ' .. answerVG .. '.'
)
end
if answer2 == "no" then
print('Alright, tough luck. You can run the code again if you change your mind.')
end
end
end
我希望它会打印出“好的,请输入...的更正版本”,但它甚至没有用。
【问题讨论】:
-
首先
end太多了,最好用elseif代替answer2 == 'no'。在这种情况下,您永远不会加入该子句。其次,您正在校对answer3的变量不存在。也许您忘记了字符串引号,例如answer3 == 'FN'。此外,您忘记了answerFN、answerLN的本地 var 定义......因此,如果您之前没有定义它们,请确保定义它们。至少我会建议您编写一个函数来打印此标准字符串输出 (You are bla bla you live in ...')。
标签: lua