今天在工作中遇見一個小問題,需要在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