LUA 初学者,有关于我的脚本的问题

大家好,我是 LUA 的新手,在编写脚本/编码方面也是刚刚开始 这就是我所说的脚本

print("请输入一个数字!")
repeat
input = io.read()
if input == "10" then
    print("十")
elseif input == "7" then
        print("七")

elseif input == "1" then
    print("一!")
elseif input == "exit" or input == "Exit" then
    print("退出...")
else
     print("不正确")
end
until input == "Exit" or input == "exit"

我觉得这里有太多的 elseif,但我不想在我输入“exit”或“Exit”时打印“不正确”,所以我的解决方案是在 else 命令之前添加另一个 elseif。这个代码能更简化吗?还是我不能对它进行任何改进,它已经很好了

还有一个问题,为什么它不起作用

num = 10
input = io.read()
If input == num then
     print("十")
end

或者这段代码

num = 10
input = io.read()
If input == 10 then
     print("十")
end

为什么只有在 if 之后是字符串的布尔值上面的代码才有效?

点赞
用户6632736
用户6632736
```lua
local inputs = {
    ['1'] = 'One!'
  , ['7'] = 'Seven'
  , ['10'] = 'Ten'
  , exit = 'Exiting...'
  , Exit = 'Exiting...'
}
local input
print '请输入一个数!'
repeat
    input = io.read()
    print(inputs[input] or '不正确') -- Lua 中的 'nullsafe' 语法。
until input == 'Exit' or input == 'exit'
2021-01-15 03:09:14
用户4984564
用户4984564
  1. 定义你的行为
local actions = {
   [1] = function() print("One");
   -- Same for any other numbers you want
   ["exit"] = function() os.exit() end; -- 关闭整个程序
}
  1. 获取你的输入
local input = io.read() -- 这会返回一个字符串
  1. 标准化你的输入
input = input:lower() -- 把整个字符串变成小写
input = tonumber(input) or input -- 尝试转换为数字
  1. 获取匹配你输入的行为
local action = actions[input]
  1. 如果找到了行为则执行它
if action then
   action()
else
   print("错误!无法处理输入:", input)
end
2021-01-15 07:29:34