3

我有一个 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
4

1 回答 1

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 语句放入循环中一次。可能在循环结束时。我不能肯定地说,因为我不知道你想做什么。

于 2013-07-18T22:37:27.570 回答