Lua表达式和控制结构学习笔记


Posted in Javascript onDecember 15, 2014

算术操作符

Lua 的算术操作符有:

"+"(加法):

print(1 + 2)

"-"(减法):

print(2 - 1)

"*"(乘法):

print(1 * 2)

"/"(除法):

print(1 / 2)

"^"(指数):

print(27^(-1/3))

"%"(取模):

print(5 % 3)

关系操作符

Lua 提供以下关系操作符:

< > <= >= == ~=

以上操作符返回的运算结果都是 true 或 false。字符串跟数字不可以进行比较

逻辑操作符

逻辑操作符有 and、or、not

print(1 and 2)

print(nil and 1)

print(false and 2)

print(1 or 2)

print(false or 5)

逻辑操作符将 false 和 nil 视为假,其它的为真。

局部变量与作用域

Lua 通过 local 语句来创建局部变量,局部变量的作用域仅限于声明它们的那个块。

local a, b = 1, 10

if a < b then

    print(a)

    local a

    print(a)

end

print(a, b)

用局部变量 local 保存全局变量,可以加速在当前作用域中对全局变量的访问。对于加速的效果,对比下面计算 斐波那契数列(Fibonacci)的执行时间便知:

function fibonacci(n)

    if n < 2 then

        return n

    end

    return fibonacci(n - 2) + fibonacci(n - 1)

end

io.write(fibonacci(50), "\n")

使用局部变量 local

local function fibonacci(n)

    if n < 2 then

        return n

    end

    return fibonacci(n - 2) + fibonacci(n - 1)

end

io.write(fibonacci(50), "\n")

控制结构

if then elseif else end

if num == 1 then

    print(1)

elseif num == 2 then

    print(2)

else

    print("other")

end

Lua 不支持 switch 语句

while

先判断 while 条件,如果条件为真,继执行循环体,否则结束

local i = 1

while a[i] do

    print(a[i])

    i = i + 1

end

repeat-until

先执行一次循环体,再判断条件,如果条件为真则退出循环体,否则继续执行循环体。类似其它语言的 do-while 语句,循环体至少会执行一次

local a = 1

repeat

    a = a + 1

    b = a

    print(b)

until b < 10

for 循环

for 循环语句有两种形式:数字型for(numeric for)、泛型for(generic for)

数字型 for 语法:

for start, end, step do

    doing something

end

start 是开始值,end 是结束值,step是步长(可选,默认为1)

for a = 10, 0, -2 do

    print(a)

end

泛型 for 循环通过一个迭代器(iterator)函数来遍历所有值:

tab = { key1 = "val1", key2 = "val2", "val3" }

for k, v in pairs(tab) do

    if k == "key2" then

        break   

    end

    print(k .. " - " .. v)

end

break 和 return 语句用于跳出当前执行的块。
Javascript 相关文章推荐
html下载本地
Jun 19 Javascript
range 标准化之获取
Aug 28 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
Jul 22 Javascript
用JS动态设置CSS样式常见方法小结(推荐)
Nov 10 Javascript
Move.js入门
Feb 08 Javascript
JS正则表达式验证中文字符
May 08 Javascript
js实现左右两侧浮动广告
Jul 09 Javascript
javascript闭包的使用之按钮切换功能
Aug 30 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
Oct 08 Javascript
JS拖拽排序插件Sortable.js用法实例分析
Feb 20 Javascript
js Array.slice的8种不同用法示例
Jul 10 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
Dec 16 Javascript
如何在node的express中使用socket.io
Dec 15 #Javascript
node.js中使用socket.io制作命名空间
Dec 15 #Javascript
node.js中的fs.fstatSync方法使用说明
Dec 15 #Javascript
node.js中的fs.fstat方法使用说明
Dec 15 #Javascript
node.js中的fs.readFileSync方法使用说明
Dec 15 #Javascript
node.js中的fs.readFile方法使用说明
Dec 15 #Javascript
node.js中的fs.linkSync方法使用说明
Dec 15 #Javascript
You might like
巧用php中的array_filter()函数去掉多维空值的代码分享
2012/09/07 PHP
深入PHP数据加密详解
2013/06/18 PHP
PHP实现简单搜歌的方法
2015/07/28 PHP
php构造函数与析构函数
2016/04/23 PHP
jquery获取复选框被选中的值
2014/03/22 Javascript
Javascript非构造函数的继承
2015/04/27 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
Angular2 (RC5) 路由与导航详解
2016/09/21 Javascript
关于javascript事件响应的基础语法总结(必看篇)
2016/12/26 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
Vue+Express实现登录注销功能的实例代码
2019/05/05 Javascript
Python字符串详细介绍
2015/05/09 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
2017/01/12 Python
Python中的默认参数实例分析
2018/01/29 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
菲律宾领先的在线时尚商店:Zalora菲律宾
2018/02/08 全球购物
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
DJI全球:DJI Global
2021/03/15 全球购物
extern在函数声明中是什么意思
2014/01/19 面试题
给校长的建议书
2014/03/12 职场文书
公司合作意向书
2014/04/01 职场文书
珍惜资源的建议书
2014/08/26 职场文书
假期安全教育广播稿
2014/10/04 职场文书
护士长2014年终工作总结
2014/11/11 职场文书
教师求职简历自我评价
2015/03/10 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
退税申请报告怎么写
2015/05/18 职场文书
学生会任命书范本
2015/09/21 职场文书
2016新年问候语大全
2015/11/11 职场文书
九年级英语教学反思
2016/02/15 职场文书
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python