当值为false时立即停止while循环

时间:2013-07-18 22:31:02

标签: lua

我有一个while循环,我希望它在值为false时立即停止 我猜如果我这样做:

while value == true do
    print("bla")
    wait(2)
    print("blaaaaa")
end

然后它会继续执行while循环,包括(包括等待)直到结束 这是真的?如果是这样,我该如何解决这个问题?

编辑我实际代码的片段:

function GM:PlayerDisconnected(ply)
    if table.Count(Players) == 1 then
        reset()
    end
end

function GM:PlayerAuthed(ply, steamID, uID)
    if not playing then
      if table.Count(Players) == 2 then
          --Woo hoo start game
          while playing do

          end
      end
    end
end

function reset()
    playing = false

    for k,v in pairs(player.GetAll()) do
        v:Kill()
        v:SetGameModeTeam(2)
    end

    chat.AddText("There needs to be 2 players!")
end

1 个答案:

答案 0 :(得分:3)

你正在寻找的是一个休息陈述......就像

if (your condition) then break end

我假设您希望循环在播放时为假。在那种情况下,替换

while playing do

end

while playing do

    if table.Count(Players) < 2
    then
        break
    end
end

执行break语句的那一刻(即有少于两个玩家的那一刻)while循环将退出。你应该只需要将这个if语句放在循环中一次。可能在你的循环结束时。我不能肯定地说,因为我不知道你想要做什么。