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技巧总结
Jan 01 Javascript
js图片轮播特效代码分享
Sep 07 Javascript
异步加载JS、CSS代码(推荐)
Jun 15 Javascript
纯js三维数组实现三级联动效果
Feb 07 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
Jul 18 Javascript
基于BootStrap实现简洁注册界面
Jul 20 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
Aug 24 Javascript
vue-router 组件复用问题详解
Jan 22 Javascript
其实你可以少写点if else与switch(推荐)
Jan 10 Javascript
webpack4之如何编写loader的方法步骤
Jun 06 Javascript
angularjs请求数据的方法示例
Aug 06 Javascript
vue移动端写的拖拽功能示例代码
Sep 09 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入门学习知识点七 PHP函数的基本应用
2011/07/14 PHP
php数组的一些常见操作汇总
2011/07/17 PHP
Php中文件下载功能实现超详细流程分析
2012/06/13 PHP
android上传图片到PHP的过程详解
2015/08/03 PHP
CakePHP框架Session设置方法分析
2017/02/23 PHP
PHP正则表达式笔记与实例详解
2019/05/09 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
深入分析js中的constructor和prototype
2012/04/07 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
2014/02/11 Javascript
首页图片漂浮效果示例代码
2014/06/05 Javascript
jquery实现搜索框常见效果的方法
2015/01/22 Javascript
javascript连续赋值问题
2015/07/08 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
jquery对复选框(checkbox)的操作汇总
2016/01/13 Javascript
jQuery中 $ 符号的冲突问题及解决方案
2016/11/04 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
React复制到剪贴板的示例代码
2017/08/22 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
2018/03/02 Javascript
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
js实现点击生成随机div
2020/01/16 Javascript
[02:20]DOTA2英雄基础教程 黑暗贤者
2013/12/19 DOTA
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
Python中使用Inotify监控文件实例
2015/02/14 Python
Python对列表去重的多种方法(四种方法)
2017/12/05 Python
python实现dijkstra最短路由算法
2019/01/17 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
Python计算一个点到所有点的欧式距离实现方法
2019/07/04 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
企事业单位求职者的自我评价
2013/12/28 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
比赛主持人开场白
2015/05/29 职场文书
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android
Python读取和写入Excel数据
2022/04/20 Python