在Lua中的重复直到循环

我的 Lua 代码有哪些问题?

local which

print("输入 f 将华氏度转为摄氏度,输入 c 将摄氏度转为华氏度")
which = io.read()
repeat
    if which=="f" then
        local c
        local f
        print("请输入华氏温度")
        f = tonumber(io.read())
        c = (f-32)/1.8
        print(c)
    elseif which=="c" then
        local ce
        local fa
        print("请输入摄氏温度")
        c = tonumber(io.read())
        f = (c*1.8)+32
    else
        print("输入 f 将华氏度转为摄氏度,输入 c 将摄氏度转为华氏度")
    end
until which=="f" or which=="c"
点赞
用户1633117
用户1633117

elseif 之前不应该有 end。在 else 之前和之后也不应该有 end 或者 do。在 else 部分之后和 until 之前应该有一个 end

repeat
  if ... then
    ...
  elseif ... then
    ...
  else
    ...
  end
until ...

下次请您提供一个问题描述(错误提示、意料之外的输出等)会更有帮助。

2013-03-22 00:49:37
用户1190388
用户1190388

你把 if 块关闭了。移除你用于关闭 ifelseifend 语句,将其放在 else 后面关闭。

local which

print("Type f to convert fahrenheit to celsius and c to convert celsius to fahrenheit")
which = io.read()
repeat
   if which=="f" then
        local c
        local f
        print("input your fahrenheit temperature")
        f = tonumber(io.read())
        c = (f-32)/1.8
        print(c)
    elseif which=="c" then
        local c
        local f
        print("input your celsius temperature")
        c = tonumber(io.read())
        f = (c*1.8)+32
        print(f)
    else
        print("Type f to convert fahrenhiet to celsius and c to convert celsius to fahrenheit")
    end
    which = io.read()
until which=="f" or which=="c"

: 这可能会导致无限循环。你需要在每次迭代结束后在 repeat until 中更新 which

2013-03-22 00:51:59
用户9425502
用户9425502
local which
repeat
    print("输入 f 来将华氏温度转换成摄氏温度,输入 c 来将摄氏温度转换成华氏温度")
    which = io.read()
    if which == "f" then
        local c
        local f
        print("输入你的华氏温度")
        f = tonumber(io.read())
        c = (f - 32) / 1.8
        print(c)

    elseif which == "c" then
        local c
        local f
        print("输入你的摄氏温度")
        c = tonumber(io.read())
        f = (c * 1.8) + 32
        print(f)
    end
    print("你想再玩一次吗?y/n?")
    antwort = io.read()

until antwort ~= "y"
2018-02-28 19:46:18