国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Lua中數字for循環實例

2024-07-21 23:04:41
字體:
來源:轉載
供稿:網友

看以下代碼:

 

復制代碼 代碼如下:

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

輸出是什么?如果習慣了C/C++語言,會覺得因為改變了控制變量i為3,所以在執行第二次循環體之前判斷不通過,所以輸出是1。
但結果輸出是1和2,即雖然改變了i,但循環還是執行了2次。這是為什么呢?

 

看了lua的源代碼,發現在語法分析階段,表達式中的i(也叫控制變量)和循環體中的i并不是一個值,其實表達式中的i叫internal index,循環體中的i叫external index。

所以在循環體中并沒有改變表達式中的i的值。

至于為什么lua要這樣做,估計是為了安全吧,怕在循環體中不經意地改變了表達式的i,從而產生bug。

另外,在Progammming in Lua一書中也提到不要在循環體內修改控制變量(實際修改的是external index)的值,否則會有不可預知的結果。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东乌| 南丹县| 木兰县| 伊宁县| 宝山区| 天门市| 齐河县| 丰顺县| 鹤峰县| 郓城县| 民乐县| 哈巴河县| 同江市| 泌阳县| 望江县| 肥城市| 长沙县| 新乡县| 普洱| 太原市| 霍林郭勒市| 三台县| 东乡县| 绥中县| 麦盖提县| 府谷县| 武安市| 祁东县| 龙山县| 民丰县| 黑龙江省| 东乌珠穆沁旗| 黑龙江省| 南安市| 永昌县| 锡林浩特市| 上犹县| 抚顺市| 宝丰县| 冕宁县| 上虞市|