Lua循环-任何建议吗?

如果用户在计算结束时输入“y”,我不知道如何使过程重复。有人能帮忙吗?

如果选择为“2”,那么
    重复 os.execute("cls")
    print "要计算多少个数字?"
    amountNo = io.read("*n")
end
如果amountNo小于等于2,则
    print "您不能少于2个数字。"
elseif amountNo>=14 then
    print "不能计算超过14个数字。"
否则
    local sum = 0
    为i = 1,amountNo do
        print(('输入数字%s'):format(i))
        local nmb = io.read('*n')
        sum = sum + nmb / amountNo
    end
    print(('总和为:%s'):format(sum))
    print("你要重复计算吗? Y/N ?")
    yesno = io.read()
    yesno_input = truefalse
    如果yesno =="y""Y""yes""Yes",则yesno = true
    如果yesno =="n""N""no""No",则yesno = false
    直到yesno==false

end

结束 end

点赞
用户752976
用户752976

如果您想重复整个过程,则整个过程必须放入循环中,显然:

repeat
  -- do stuff

  doAgain = io.read()
until doAgain:lower():sub(1,1) == "n"

我用更简单的方式替换了您的检查; :lower() 将用户答案转换为小写并 :sub(1,1) 将其提取出第一个字符。 如果您认为它太复杂,请打包为函数。

function isNegativeResponse(response)
   return response:lower():sub(1,1) == "n"
end

repeat
  -- stuff
until isNegativeResponse(io.read())

这看起来相当自然,不是吗?重复代码(stuff)直到用户产生负响应。

2014-05-20 11:37:35