Lua中数字for循环实例
- 软件编程
- 2026-01-11 20:13:17
看以下代码:

复制代码 代码如下:
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)的值,否则会有不可预知的结果。
# 的是
# 这是
# 会有
# 是一个
# 不要在
# 源代码
# 也叫
# 是为了
# br
# 这样做
# 看了
# 什么呢
# 改变了
# 体内
# 中不
# 一书
# 中也
# span
# nbsp
# 不通过
# Lua
# Lua中三种循环语句的使用讲解
# Lua中的for循环和迭代器的秘密探究
# Lua编程示例(三):稀疏表、双端队列、格式化输出、表和循环表的格式化输出
# Lua编程中使用嵌套循环的使用教程
# Lua中的repeat...until循环语句使用教程
# 详解Lua中repeat...until循环语句的使用方法
# Lua中for循环语句的使用教程
# 详解Lua中的while循环语句的使用
# Lua中变相实现continue跳出循环
# 数字for循环
相关栏目:
【
教研文案 】
【
日常文案 】
【
AI模型 】
【
网络运营 】
【
营销推广 】
【
云计算 】
【
技术教程 】
【
软件编程 】
【
汉字学习 】
【
歌词歌曲 】
【
精选文章 】
相关推荐:
python 写一个文件分发小程序
微信小程序实现列表左右滑动
Python析构函数__del__定义原理解析
C# 实现Distinct将对象按条件去重
Mysql事务中Update是否会锁表?
BeautifulSoup获取指定class样式的div的实现
浅析SQL Server授予了CREATE TABLE权限但是无法创建表
docker-compose快速搭建docker私有仓库的步骤
微信小程序实现锚点跳转
Docker搭建php环境教程详解
PHP SESSION跨页面传递失败解决方案
VUE中鼠标滚轮使div左右滚动的方法详解
docker-compose安装db2数据库操作
详解IDEA社区版(Community)和付费版(UItimate)的区别
python遍历路径破解表单的示例
js实现弹幕墙效果
使用Shell脚本如何启动/停止Java的jar程序
Mybatis批量提交实现步骤详解
浅谈MySQL中float、double、decimal三个浮点类型的区别与总结
通过代码实例解析PHP session工作原理
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
详解java调用python的几种用法(看这篇就够了)
Python之字符串的遍历的4种方式
C#中应用程序集的装载过程详解
利用zabbix监控ogg进程(Windows平台)
pandas将list数据拆分成行或列的实现
vue添加自定义右键菜单的完整实例
java实现简单计算器功能
IDEA main主函数如何添加args变量
详解如何在Android studio中更新sdk版本和build-tools版本
详解mysql中explain的type
详解Python GUI编程之PyQt5入门到实战
Linux 使用shell脚本处理字符串的实现
springboot如何读取application.yml文件
PHP生成随机密码4种方法及性能对比
python 实现表情识别
使用typescript快速开发一个cli的实现示例
linux下利用Docker安装mysql的步骤
docker容器无法访问宿主机端口的解决
用python实现一个简单的验证码
go install/build生成的文件命名和路径操作
使用IDEA配置Tomcat和连接MySQL数据库(JDBC)详细步骤
Python实现Kerberos用户的增删改查操作
PHP sdk文档处理常用代码示例解析
C++ 写的UrlEncode和UrlDecode实例
jQuery-App输入框实现实时搜索
javascript局部自定义鼠标右键菜单
pandas按照列的值排序(某一列或者多列)
Vue $attrs & inheritAttr实现button禁用效果案例
微信小程序实现倒计时功能
本文转自网络,如有侵权请联系客服删除。
热门内容推荐
C#使用虚拟方法实现多态
- 2026-01-11
JavaScript原生对象之String对象的属性和方法详解
- 2026-01-11
js实现DOM走马灯特效的方法
- 2026-01-11
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
- 2026-01-11
php实现微信公众平台账号自定义菜单类
- 2026-01-11
