佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > Lua中數(shù)字for循環(huán)實(shí)例

Lua中數(shù)字for循環(huán)實(shí)例

熱門標(biāo)簽:百度競(jìng)價(jià)排名 地方門戶網(wǎng)站 呼叫中心市場(chǎng)需求 網(wǎng)站排名優(yōu)化 AI電銷 Linux服務(wù)器 服務(wù)外包 鐵路電話系統(tǒng)

看以下代碼:

復(fù)制代碼 代碼如下:

for i=1,2 do 
  print(i) 
  i=3 
end 

輸出是什么?如果習(xí)慣了C/C++語(yǔ)言,會(huì)覺得因?yàn)楦淖兞丝刂谱兞縤為3,所以在執(zhí)行第二次循環(huán)體之前判斷不通過,所以輸出是1。
但結(jié)果輸出是1和2,即雖然改變了i,但循環(huán)還是執(zhí)行了2次。這是為什么呢?

看了lua的源代碼,發(fā)現(xiàn)在語(yǔ)法分析階段,表達(dá)式中的i(也叫控制變量)和循環(huán)體中的i并不是一個(gè)值,其實(shí)表達(dá)式中的i叫internal index,循環(huán)體中的i叫external index。

所以在循環(huán)體中并沒有改變表達(dá)式中的i的值。

至于為什么lua要這樣做,估計(jì)是為了安全吧,怕在循環(huán)體中不經(jīng)意地改變了表達(dá)式的i,從而產(chǎn)生bug。

另外,在Progammming in Lua一書中也提到不要在循環(huán)體內(nèi)修改控制變量(實(shí)際修改的是external index)的值,否則會(huì)有不可預(yù)知的結(jié)果。

您可能感興趣的文章:
  • Lua編程示例(三):稀疏表、雙端隊(duì)列、格式化輸出、表和循環(huán)表的格式化輸出
  • Lua編程中使用嵌套循環(huán)的使用教程
  • Lua中的repeat...until循環(huán)語(yǔ)句使用教程
  • 詳解Lua中repeat...until循環(huán)語(yǔ)句的使用方法
  • Lua中for循環(huán)語(yǔ)句的使用教程
  • 詳解Lua中的while循環(huán)語(yǔ)句的使用
  • Lua中變相實(shí)現(xiàn)continue跳出循環(huán)
  • Lua中的for循環(huán)和迭代器的秘密探究
  • Lua中三種循環(huán)語(yǔ)句的使用講解

標(biāo)簽:黃山 仙桃 蘭州 衡水 湖南 崇左 銅川 湘潭

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua中數(shù)字for循環(huán)實(shí)例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    莲花县| 京山县| 长沙市| 海原县| 赣榆县| 怀远县| 绥江县| 新源县| 正安县| 林州市| 仪陇县| 三台县| 鹤岗市| 温宿县| 宁明县| 桦南县| 库尔勒市| 津市市| 历史| 昭通市| 神池县| 佳木斯市| 乐平市| 渝中区| 和林格尔县| 唐海县| 卓资县| 文成县| 齐河县| 西峡县| 绵竹市| 武定县| 清流县| 江阴市| 左权县| 旬邑县| 嘉禾县| 长阳| 上饶县| 普兰县| 陆丰市|