乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      【Lua】為什么 Lua 里沒(méi)有 continue

       quasiceo 2014-01-16

      【Lua】為什么 Lua 里沒(méi)有 continue

      對(duì)于Lua里沒(méi)有continue的問(wèn)題相信很多用lua的人都遇到過(guò),官方也有作出了解釋

      在Lua中,repeat until 有點(diǎn)類(lèi)似于C++的do while,但在機(jī)制上有一點(diǎn)區(qū)別,在Lua的until的條件表達(dá)式中,表達(dá)式中的變量可以是repeat until代碼塊內(nèi)聲明的局部變量,但在C++中,while的條件表達(dá)式中的變量不允許出現(xiàn)do while內(nèi)部聲明的臨時(shí)變量,必須是do while外部聲明的變量。

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

      復(fù)制代碼
      local a = 1  -- outer
      repeat
          if f() then
              continue
          end
          local a = 1  -- inner
          ...
      until a == 0
      復(fù)制代碼

      由于continue會(huì)跳過(guò)后面local a = 1的聲明,那么 until a == 0 到底是指內(nèi)部的local a還是外部的a就會(huì)有歧義了!

      那么如何用別的機(jī)制來(lái)代碼continue呢?有一個(gè)比較簡(jiǎn)單的方法:在循環(huán)內(nèi)套一個(gè)repeat ... until true,再將想用continue的地方寫(xiě)成break。如:

      復(fù)制代碼
      for i = 1, 10 do
          repeat
              if i == 5 then
                  break
              end
              print(i)
          until true
      end
      復(fù)制代碼

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多