今天在工作中遇见一个小问题,需要在lua中使用continue的用法,手动写了一些,加深印象
首先来提一下lua中的 for 循环。
--从 1到10遍历输出
for i = 1,10,do
print(i)
end
--从1到10,以每次增2遍历输出
for i = 1,10,2 do
print(i)
end
--当然你也可以从大到小遍历
for i = 10,1,-1 do
print(i)
end
OK,再看一下repeat 用法好了,这个类似do while语句,循环体开始程序都会执行一次,until条件成立的时候退出.
a = 5
repeat
a = a * 3
print("value is",a)
until(a > 30)
while do 语句刚好和repeat 相反,条件成立开始执行循环,不成立退出。
a = 10
while (a < 15) do
a = a +1
print("value a is ",a)
end
好了,接下来我们用上面的组合模拟一下continue。
- 方法一
在循环体中使用repeat,在想要continue的地方使用break 就好。
for i = 1, 10,2 do
repeat
if i == 5 then
print("enter continue")
break
end
print("loop",i)
until true
end
- 方法二
在循环体中使用while 语句,在想要continue的地方使用break 跳出当前循环。(多个循环体中,break会依次从内到外退出当前循环体)
for i = 1,10 do
while true do
if i %2 == 0 then
print("continue",i)
break
end
print("loop",i)
break
end
end
- 方法三
通过新版本goto来模拟此用法
for i = 1, 10 do
if i%2 == 0 then
print("continue",i)
goto continue
end
print("loop",i)
::continue::
end