《lua程序设计(第二版)》学习笔记(四) ------------ 基本操作

解释都在注释里,你可以新建lua文件,拷贝下面的代码直接在命令行下面就可以运行,本人是用sublime运行的

-- 第4章  语句
-- 赋值, 局部变量与块, 控制结构  break与return

-- 4.1 赋值: 修改一个变量或者一个table中字段的值
a = 0;
a = 1; -- 赋值也,变换值也
-- 多重赋值(多重返回稍后讲解)
a, b = 2, 3;
print(a, b);
a, b, c = 2, 3; --- 值不足补nil
print(a, b, c); -- 2, 3, nil
a, c = 2, 3, 4  -- 值多余舍弃
print(a, b, c);	 -- 2, 3, 3

function rValue()
	return 1, 2, 3
end

a, b = rValue();
print(a, b, c); -- 1, 2, 3
-- 多重赋值,多重返回值就这么讲完鸟

-- 4.2 局部变量与块(block)
-- 我们前面用到的都是 全局变量 ,应该尽量少用全局变量
local i = 100;  -- 局部变量,我们尝试在下面打印它,看看是否可行
print(i); -- 打印100,表示可行,当我们用dofile "filename"加载编译此代码文件后,
-- 进入交互模式,局部变量不再存在, 全局行数存在,除非我们推出交互或者重新编译此代码文件
-- 我们可以在交互模式(或者其他代码文件)调用此代码文件的全局变量或者全局行数
-- 这里有点啰嗦,其实道理很简单,跳

-- 交互模式下(命令行)使用local 定义变量
-- lua将它当作一个程序看(chunk)来处理,会马上执行这个定义,下一行时这个local变量已经超过程序块的
-- 定义范围,自然失去作用,有别于代码文件
-- 我们可以现实调用do-end来定义一个程序块,由此来限定local的使用返回
-- 不行你在交互模式写下如此代码
local i = 0;
print(i); -- 同上在这里打印0, 在交互模式上面打印nil
do
local i = 0;
print(i)
end
-- 太无聊的时候就拼命解释, 在跳

-- 4.3 控制结构
-- 4.3.1 if then else

local i =1
local j = 2;
-- 打印最小值
if i < j then 
	print(i)
else
	print(j)
end

a = {}
for i=1,10 do -- 从一开始
	a[i] = i;
end
-- 4.3.2 while
local i = 1;-- 刚刚不小心写成0了,上面式用1开始的,而且这是lua标准,请尽量从1开始
while a[i] do
	-- print(a[i]);
	i = i+1;
end

local i = 1;
repeat
	-- print(a[i]);
	i = i + 1;
until a[i] == nil

-- 泛型for循环
for i,v in ipairs(a) do
	-- print(i,v)
end

-- 再连连for循环
local days = {
	"Sunday", "Monday", "Tuesday", "Wednesday", "Thuresday", "Friday", "Saturday",
	["one"] = "ONE", ["two"] = "TWO"
}


for k,v in pairs(days) do
	-- print(k,v)
end
-- ipairs 和 pairs有什么区别呢?
-- 注意到["one"] = "ONE", ["two"] = "TWO"了吗,用pairs可以答应到,用ipairs就不行了

-- 4.4 break 与 return
-- 用于跳出当前的块和c/c++一样,不赘述
-- 只能放在程序块的最后一句
local i = 1;
while a[i] do
	if i == 3 then break end
	print(a[i]);
	-- i = i + 1;
end

  

转载于:https://www.cnblogs.com/bibiAndroid/p/3707656.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值