| Lua编程基础:判断与循环一、判断语句基础结构 判断语句由三个部分组成:条件判断、执行代码、结束标记。当条件为真时,执行对应的代码块。 语法糖:三目运算新手与高手的分水岭在于代码的简洁程度。三目运算是一种更加简洁的写法,可以用一行代码替代传统的多行判断结构。 核心逻辑:条件满足时执行第一个结果,否则执行第二个结果。当条件为真,走前面的路径;条件为假,走后面的路径。 防卫语句(Guard Clause)防卫语句是新手进阶的关键技巧。如果你不会使用防卫语句和三目运算,就永远无法脱离新手阶段。 传统写法的问题:当需要判断多个条件时(如用户名、密码、登录时间、IP地址等),如果全部使用嵌套判断,代码会层层缩进,形成"箭头型"代码,难以阅读和维护。 防卫语句的优势:通过提前返回(return)的方式,在条件不满足时立即中断执行。这种方式让代码扁平化,每个异常情况都有独立的判断和处理,逻辑清晰,易于维护。 防卫语句的本质:提前处理异常,将所有可能发生的异常情况前置判断。可以理解为"当我不希望某种情况发生,就提前退出",避免进入冗长的主逻辑。 应用示例: - 玩家等级不足时直接返回"等级不足"
- 用户名或密码为空时直接返回错误提示
- 物品不足、金币不足等条件判断
防卫语句不仅适用于Lua,在其他脚本语言中同样存在类似的实现方式。 二、循环语句第一种:while循环特性:当条件满足时持续循环,先检查条件再执行。 结构:初始化变量 → 判断条件 → 执行代码 → 更新变量 → 回到条件判断 注意事项:必须确保循环内有退出机制(如变量自增),否则会形成死循环。 第二种:repeat-until循环特性:至少会执行一次,先执行代码再判断条件。 与while循环的区别在于判断时机的不同:while是先判断后执行,repeat是先执行后判断。 第三种:for循环(数字循环)—— 重点掌握这是最常用、最重要的循环方式,建议初学者重点掌握,其他两种循环了解即可。 结构组成: - 第一个参数:起始值
- 第二个参数:终点值(包含该值,到等于此值时停止)
- 第三个参数:步长(可省略,默认为1)
步长控制: - 步长为正数:正向循环(如1到5)
- 步长为负数:反向循环(如5到1)
- 步长为2:每次跳过一个数字(如1、3、5)
循环控制:break语句用于跳出当前循环,立即终止循环执行。 三、循环嵌套循环嵌套指在一个循环内部再放置另一个循环。外层循环每执行一次,内层循环会完整执行一轮。 变量命名建议:内外层循环使用不同的变量名(如外层用i,内层用j),避免混淆,提高代码可读性。 应用示例:九九乘法表可以通过双重循环实现,外层控制行数,内层控制列数,通过调整内层循环的起始值可以控制输出格式。 四、其他重要概念变量赋值多变量同时赋值时,按位置一一对应。如果右侧值的数量少于左侧变量数量,多余的变量会被赋值为空值(nil)。 代码的本质所有代码最终都在做两件事:计算和搬运(内存操作)。无论是判断、循环还是函数调用,本质上都是在控制数据的流动和转换。 不建议使用的语句goto语句虽然官方支持,但会破坏代码的结构化,导致代码难以阅读和维护。建议永远不要使用,而是通过合理的判断和循环结构来控制流程。 五、学习建议练习重点: - 判断:练习处理分支逻辑
- 防卫语句:练习提前预判异常情况
- 循环:理解重复执行的价值,尝试用循环替代重复代码
学习方法:结合AI工具辅助学习,遇到不懂的基础概念随时提问,通过反复练习形成肌肉记忆。 核心原则:理解Lua的语法规则和内存机制,做到"人机合一",让代码在内存中高效流动。
六、实例
-- 生成九九乘法表
for i = 1, 9 do
local row = ""
for j = 1, i do
row = row .. (j .. "*" .. i .. "=" .. (i * j) .. "\t")
end
print(row)
end
|