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 相关文章推荐
jQuery替换字符串(实例代码)
Nov 13 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
Jun 07 Javascript
apply和call方法定义及apply和call方法的区别
Nov 15 Javascript
JavaScript预解析及相关技巧分析
Apr 21 Javascript
Angular2 多级注入器详解及实例
Oct 30 Javascript
js绑定事件和解绑事件
Apr 27 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
Jan 08 Javascript
vue多次循环操作示例
Feb 08 Javascript
关于vue组件事件属性穿透详解
Oct 28 Javascript
Vue文本模糊匹配功能如何实现
Jul 30 Javascript
js代码编写无缝轮播图
Sep 13 Javascript
原生JS实现拖拽功能
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代码优化的53个细节
2014/03/03 PHP
使用Composer安装Yii框架的方法
2016/03/15 PHP
日期 时间js控件
2009/05/07 Javascript
javascript 设置文本框中焦点的位置
2009/11/20 Javascript
jquery.validate.js插件使用经验记录
2014/07/02 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
原生js实现addclass,removeclass,toggleclasss实例
2016/11/24 Javascript
Nodejs 搭建简单的Web服务器详解及实例
2016/11/30 NodeJs
原生JS实现垂直手风琴效果
2017/02/19 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
2017/03/03 Javascript
fullPage.js和CSS3实现全屏滚动效果
2017/05/05 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
全面分析Python的优点和缺点
2018/02/07 Python
Python安装lz4-0.10.1遇到的坑
2018/05/20 Python
python实现逆序输出一个数字的示例讲解
2018/06/25 Python
python实现点对点聊天程序
2018/07/28 Python
深入了解Python iter() 方法的用法
2019/07/11 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
python学习将数据写入文件并保存方法
2020/06/07 Python
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
美国办公用品折扣网站:Shoplet.com
2019/11/24 全球购物
酷瑞网络科技面试题
2012/03/30 面试题
初婚初育证明
2014/01/14 职场文书
党员创先争优承诺书
2014/03/26 职场文书
员工三分钟演讲稿
2014/08/19 职场文书
青春飞扬演讲稿
2014/09/11 职场文书
2015年环保局工作总结
2015/05/22 职场文书
2016感恩父亲节主题广播稿
2015/12/18 职场文书
Pandas数据类型之category的用法
2021/06/28 Python