Lua语句

来源:互联网 发布:淘宝网红店铺有哪些 编辑:程序博客网 时间:2024/06/06 18:49

1.赋值语句

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

a = 30;        // 单个赋值a, b = 10, 30; // 多个赋值a, b = b, a;   // Lua中交换值时不要临时变量做中介,只需要直接赋值就行了// 函数返回多个返回值function someValue()    local a, b = 10,20;    return a, b;endprint(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);    endend

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 doend// 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构造一个块。

1 0
原创粉丝点击