Lua语句

1.赋值语句

Lua中的赋值,直接使用赋值操作符,比如:

a = 30;        // 单个赋值
a, b = 10, 30; // 多个赋值
a, b = b, a;   // Lua中交换值时不要临时变量做中介,只需要直接赋值就行了

// 函数返回多个返回值
function someValue()
    local a, b = 10,20;
    return a, b;
end
print(someValue()); // 输出为:10,20

2.局部变量与块

Lua中有局部变量和全局变量,定义一个局部变量,只需要在变量名称前面添加关键字local,不加local修饰的变量均是全局变量。例如:

i = 10;      // 全局变量
local j = i; // 局部变量

局部变量的作用域只在声明它的块儿内,比如一个局部变量只在函数内声明的话,退出函数时它就不能被访问了,当一个局部变量在循环中声明,如果循环结束,局部变量的生命周期就结束了。
(1)如果变量没有被赋值,会被自动赋值为nil
(2)如果赋值操作符的左边变量更多,那么多出来的变量会被自动赋值为nil
(3)如果赋值操作符的右边值更多,那么多余的值会被抛弃;
(4)如果需要在一段代码中插入一段代码可以使用块do...end。例如:

if true then
    do
        local i = 10;
        print(a);
    end
end

3.控制语句

(1)if...then...elseif...else...end
Lua中没有C++/C中的条件判断语句switch语句,但是可以使用if语句代替。

local a, b, c = 10,20,30;
if (a > b) then
    //...
elseif(a > c) then
    //...
else
    //...
end

(2)while语句
Lua中的while语句和其他语言的while语句用法是一样的。
在C++/C中,while语句的写法如下:

// C++/C中
while(a < 5)
{
    ++a;
}

// Lua中,Lua中没有自增运算符++
while (a < 5) do
    a = a + 1;
end

(3)repeat... until
Lua中的repeat语句类似于do...while语句,都是先执行一次,然后在判断条件是否满足。

local i = 0;
repeat
    i = i +1;
    print(i..", ");
until(i > 3)
// 输出为:1,2,3,4

和其他语言不同的是,repeat...until中定义的局部变量作用域范围包括了until中语句。
(4)for
Lua中的for循环语句分成两种:数字for循环和泛型for循环。
1)数字for循环
表示从from到end,每次递增step,step不设置的话默认是1,

for var = from, end, step do
end
// form:开始,end:结束,step:步长

2)泛型for循环
Lua库中为泛型for循环提供了几个迭代器函数:
io.line:用于遍历每行;
pairs: 用于遍历迭代table元素;
ipairs:用于迭代数组元素;
string.gmatch: 用于迭代字符串中的单词。

days = {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
for k, v in paris(days) do
    print(v);
end

(5)breakreturn
break跳出当前块,return结束当前函数,breakreturn只能在块中的最后一条语句,否则需要do...break...end构造一个块。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值