Lua中的repeat...until循环语句使用教程
Lua中的repeat...until循环将条件判断置于循环末尾,确保循环体至少执行一次。每次执行后检查条件,若为假则继续循环,直到条件为真时终止。该结构适用于需先执行一次操作的场景,例如输入验证等场景。
在Lua里,有一个循环结构很有意思——repeat...until。它的工作方式和常见的for或while循环不太一样:后两者都是在每次循环开始前先检查条件,而repeat...until恰恰相反,它把条件判断放到了循环的末尾。这意味着什么呢?简单说,循环体至少会被执行一次,然后再看条件是否满足。
这其实很像其他语言里的do...while循环——都是“先干再说,不行再停”的节奏。来看一下它的语法:
statement(s)
until( condition )
注意,条件表达式是写在until后面的,而且在整个循环执行一次之后才会被测试。如果条件为假(false),控制流就会跳回repeat处,继续执行循环体里的语句;反复进行,直到条件变为真为止。整个过程可以用下面这张流程图来理解:

光说理论有点干,直接上个例子看看效果:
a = 10
--[ repeat loop execution --]
repeat
print("value of a:", a)
a = a + 1
until( a > 15 )
运行这段代码,输出结果是这样的:
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
可以看到,当a从10开始,每循环一次就打印当前值并加1,直到a大于15时才退出。注意这里打印了15之后才退出——因为循环体执行完才检查条件,此时a已经变成16了,条件a > 15为真,循环终止。换句话说,这个循环保证了a从10到15一共6次输出,哪怕条件一开始就不满足(比如a初始就是20),它也会先执行一次再判断。这个特点在某些场景下非常实用,比如需要先做一次初始化操作,或者确保某段代码至少运行一次。
火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。
















