You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lua嵌套循环代码运行逻辑及输出结果成因求解

Lua 嵌套循环运行逻辑解析

首先复现你给出的代码:

j = 5
for i = 1,5 do
    for j = 2,5,4 do
        print(i*j)
    end
end

核心运行规则拆解

  • 首先明确Lua数值型for循环的执行逻辑:语法为for 变量 = 起始值, 终止值, 步长 do 循环体 end,步长不填默认是1。每次循环启动时先给控制变量赋值为起始值,判断是否满足(步长为正时:变量值 <= 终止值;步长为负时:变量值 >= 终止值),满足就执行循环体,执行完后变量加步长再次判断,不满足就退出循环。
  • 内层循环for j = 2,5,4 do的运行次数:步长为4,第一次循环j初始化为2,2 <= 5满足条件,执行一次循环体;执行完后j加步长4变成6,6 > 5不满足条件,直接退出内层循环。也就是说不管外层循环跑多少次,内层循环每次只会执行1次,且执行时j的值固定为2。
  • 外层循环for i = 1,5 do是i从1到5依次取值,步长默认1,所以i会依次取1、2、3、4、5五个值。
  • 开头定义的全局变量j = 5完全不影响运行结果:因为内层for循环的控制变量j会在每次内层循环启动时被重新赋值为2,外层的j会被直接覆盖。

输出结果推导

每次外层循环取一个i值,就执行一次print(i*2):

  • i=1时:1*2=2,输出2
  • i=2时:2*2=4,输出4
  • i=3时:3*2=6,输出6
  • i=4时:4*2=8,输出8
  • i=5时:5*2=10,输出10
    最终输出结果就是2、4、6、8、10,和你观察到的运行结果一致。

内容的提问来源于stack exchange,提问作者tanteo155

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 11:15:02