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