精品一区二区三区影院在线午夜_天天躁日日躁狠狠躁AV麻豆_国产午夜福利短视频_中文字幕乱偷无码AV先锋蜜桃_久久精品一二区东京热_国产成人亚洲日韩欧美久久久,国产成人精品久久一区二区三区

【Lua】為什么 Lua 里沒有 continue?

對于Lua里沒有continue的問題相信很多用lua的人都遇到過,官方也有作出了解釋

在Lua中,repeat until 有點類似于C++的do while,但在機制上有一點區別,在Lua的until的條件表達式中,表達式中的變量可以是repeat until代碼塊內聲明的局部變量,但在C++中,while的條件表達式中的變量不允許出現do while內部聲明的臨時變量,必須是do while外部聲明的變量

基于這個原因,我們假設Lua支持了continue,考慮以下代碼:

local a = 1  -- outer
repeat
    if f() then
        continue
    end
    local a = 1  -- inner
    ...
until a == 0

由于continue會跳過后面local a = 1的聲明,那么 until a == 0 到底是指內部的local a還是外部的a就會有歧義了!

那么如何用別的機制來代碼continue呢?有一個比較簡單的方法:在循環內套一個repeat ... until true,再將想用continue的地方寫成break。如:

for i = 1, 10 do
    repeat
        if i == 5 then
            break
        end
        print(i)
    until true
end
夏河县| 丹巴县| 荣成市| 贡觉县| 西华县| 乳源| 上栗县| 宝丰县| 南昌县| 确山县| 泰宁县| 泽州县| 石屏县| 乌鲁木齐县| 遂平县| 正蓝旗| 马关县| 南陵县| 綦江县| 麦盖提县| 长顺县| 天气| 来安县| 高安市| 泰兴市| 堆龙德庆县| 江山市| 高尔夫| 抚州市| 开江县| 枣强县| 上饶市| 秭归县| 冷水江市| 水富县| 黔东| 峨眉山市| 宜城市| 三江| 出国| 西乌|