重复直到lua循环

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重复直到lua循环相关的知识,希望对你有一定的参考价值。

我的lua代码出错了什么?

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)
    end

    elseif which=="c" then
        local ce
        local fa
        print("input your celsius temperature")
        c = tonumber(io.read())
        f = (c*1.8)+32
    end

    else do
    print("Type f to convert fahrenhiet to celsius and c to convert celsius to fahrenheit")
until which=="f" or which=="c"
答案

你先关闭你的if区块。删除用于关闭endifelseif语句,并在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 ce
        local fa
        print("input your celsius temperature")
        c = tonumber(io.read())
        f = (c*1.8)+32

    else
        print("Type f to convert fahrenhiet to celsius and c to convert celsius to fahrenheit")
    end
until which=="f" or which=="c"

P.S。:这可能会导致你无限循环。您需要在重复内部的每次迭代后更新which,直到。

另一答案

end之前应该没有elseif。之前也应该没有end,而且在do之后没有else。在end部分之后和else之前应该有一个until

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

下次如果你至少发布了你的问题(错误信息,意外输出等)会很有帮助。

另一答案
local which
repeat
    print("Type f to convert fahrenheit to celsius and c to convert celsius to fahrenheit")
    which = io.read()
    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)
    end
    print("do you want to play again? y/n?")
    antwort = io.read()


until antwort ~= "y"

以上是关于重复直到lua循环的主要内容,如果未能解决你的问题,请参考以下文章

循环与选择

Lua 循环

Python中的重复直到或等效循环[重复]

循环直到 TcpClient 响应完全读取 [重复]

Lua for循环减少我?奇怪的行为[重复]

播放随机声音而不重复