Lua提供了一组传统的,小巧的控制结构,包括用于条件执行的if,用于迭代的while、repeat和for。所有的控制结构都有一个现实的终止符号:if for while 都以end结尾,repeat以until作为结尾。

控制结构中的条件表达式可以使任何的值,Lua将所有false和nil的值视为“真”。

1. if then else语句

if a<0 then
a=0
end if a<b then
return a
else
return b
end

嵌套的if,可以使用elseif

if op=="+" then
r = a+b;
elseif op=="-" then
r = a-b;
elseif op=="*" then
r = a*b;
elseif op=="/" then
r = a/b;
else
error("invalid operation")
end

2. while

i =1
while i<10 do
print(i)
i=1+1;
end

3. repeat until

until 条件为真

repeat
  print(i)
  i=i+1
until i >10

4. 数字型for循环

语法

for exp1, exp2, exp3 do
<code>
do exp1初始值,exp2终止值,exp3是步长。步长exp3 默认是1
for i=1,10,2 do
print(i)
end
for i=1,10 do
print(i)
end

和C、C++一样也有break语句,终止用math.huge

for i=1,math.huge do
if i>5 then
break
end
print(i)
end

4. 泛型for循环

for i,v in ipairs(tb) do
print(v)
end

Lua的基础库提供了ipairs,这是一个用于用于数组的迭代的函数。每次循环,i会被赋予一个索引的值,同时v被赋予一个对应该索引的数组元素值。

Lua学习(3)——控制结构的更多相关文章

  1. Lua学习笔记(二):基本语法

    Lua学习指南:http://www.lua.org/manual/ 首先我们要明确的一点是:在Lua中,除了关键字外一切都是变量. Lua关键字 可以查看这个地址:http://www.lua.or ...

  2. Lua 学习笔记(一)

    Lua学习笔记 1.lua的优势 a.可扩张性     b.简单     c.高效率     d.和平台无关 2.注释 a.单行注释 --        b.多行注释 --[[  --]] 3.类型和 ...

  3. [转]LUA 学习笔记

    Lua 学习笔记 入门级 一.环境配置 方式一: 1.资源下载http://www.lua.org/download.html 2.用src中的源码创建了一个工程,注释调luac.c中main函数,生 ...

  4. lua学习:使用Lua处理游戏数据

    在之前lua学习:lua作配置文件里,我们学会了用lua作配置文件. 其实lua在游戏开发中可以作为一个强大的保存.载入游戏数据的工具. 1.载入游戏数据 比如说,现在我有一份表单: data.xls ...

  5. Lua学习笔记6:C++和Lua的相互调用

        曾经一直用C++写代码.话说近期刚换工作.项目组中的是cocos2dx-lua,各种被虐的非常慘啊有木有.     新建cocos2dx-lua项目.打开class能够发现,事实上就是C++项 ...

  6. Lua学习笔记4. coroutine协同程序和文件I/O、错误处理

    Lua学习笔记4. coroutine协同程序和文件I/O.错误处理 coroutine Lua 的协同程序coroutine和线程比较类似,有独立的堆栈.局部变量.独立的指针指令,同时又能共享全局变 ...

  7. nginx+lua学习

    1. nginx+lua学习 1.1. 网关架构 1.2. nginx命令和信号控制 nginx -s stop 快速关闭,不管有没有正在处理的请求 nginx -s quit 优雅关闭方式,推出前完 ...

  8. (转)Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境

    Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境(一)注意:工程必须添加两个宏:“配置属性”/“C或C++”/“预处理器”/“预处理器定义”,添加两个宏:_CRT_SECURE_ ...

  9. Lua学习笔记:面向对象

    Lua学习笔记:面向对象 https://blog.csdn.net/liutianshx2012/article/details/41921077 Lua 中只存在表(Table)这么唯一一种数据结 ...

随机推荐

  1. WebGL 高级技术

    1.如何实现雾化 实现雾化的方式由多种,这里使用最简单的一种:线性雾化(linear fog).在线性雾化中,某一点的雾化程度取决于它与视点之间的距离,距离越远雾化程度越高.线性雾化有起点和终点,起点 ...

  2. 在IntelliJ IDEA中添加repository模板

    可以用于快速新建一个repository类,减少开发时间 在IntelliJ IDEA settings设置中(ctrl+alt+s)--Editor--File and Code Templates ...

  3. DOM的发展,DOM0,DOM1,DOM2,DOM3

    Documentc Object Model文档对象模型是针对XML但经过扩展用于HTML的应用程序接口(API Application programming Interface).DOM把整个界面 ...

  4. tolua#代码简要分析

    简介 tolua#是Unity静态绑定lua的一个解决方案,它通过C#提供的反射信息分析代码并生成包装的类.它是一个用来简化在C#中集成lua的插件,可以自动生成用于在lua中访问Unity的绑定代码 ...

  5. XSS跨站脚本攻击

    1.简介 跨站脚本(cross site script)为了避免与样式css混淆,所以简称为XSS. XSS是一种经常出现在web应用中的计算机安全漏洞,也是web中最主流的攻击方式.那么什么是XSS ...

  6. win7下安装memcached出现failed to install service or service already installed解决办法

    安装memcached时总是提示“failed to install service or service already installed”,开始以为是版本问题,就下了好几个不同版本,可还是老问题 ...

  7. 今天开始上Linux运维课。

    2017年4月25日,北京.沙河老男孩教育,Linux运维. 我是其中一员,希望顺利!

  8. openfire+smack 实现即时通讯基本框架

    smack jar下载地址 http://www.igniterealtime.org/downloads/download-landing.jsp?file=smack/smack_3_2_2.zi ...

  9. myeclipse中文乱码

    解决myeclipse中乱码问题. 改变整个Eclipse工作空间的编码格式 window->preferences->General->workspace中 把text file ...

  10. final的用法

    先来看一段代码 class Car extends Vehicle {     public static void main (String[] args)     {         new  C ...