源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Lua中数字for循环实例

  • 时间:2022-10-16 12:57 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Lua中数字for循环实例
看以下代码:
[u]复制代码[/u] 代码如下:
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)的值,否则会有不可预知的结果。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部